2016-11-03 10 views
0

ユーザからイメージURLを隠したいので、私はPHPを使用していますheader()機能、 Bluehostのウェブサイト、それはlocalhost上で正常に動作します。 ここに画像にアクセスする機能があります。ここlocalhostで動作するが、実際のサーバでは動作しないPHPヘッダー( 'Content-Type:image/jpeg')は

function download($name = '', $tiny = '0') { 
    if ($name != '') { 
     $file = $this->mdl->get_file($name); 
     if($file){ 
       $mime = mime_content_type('./'.$file->path.$file->name); 
       header('Content-Type: '.$mime); 
       echo file_get_contents('./'.$file->path.$file->name); 
     } 
    } 
} 

はモデルにGET_FILE機能である:

function get_file($name=''){ 
    if($name!=''){ 
     return $this->db->select('*') 
     ->from('docs') 
     ->where('name',$name) 
     ->get() 
     ->row(); 
    } 
    return false; 
} 

いかなる参考になっ答えはappretiatedされます。

+2

bluehostで何が起こっているかどんな種類のエラー? –

+0

Mozillaを使用してイメージを表示するときに、次のエラーが発生します。「http://www.mywebsitename.com/index.php/main/download/1234556.jpg」イメージにはエラーが含まれているため表示できません。 Chromブラウザを使用すると、画像の代わりに小さなボックスが表示されます。 @Gabriel Heming – Aziz

答えて

0

基本的に、このタイプの問題は、phpタグやヘッダー機能の前に印刷されたスペースや改行が存在する場合に発生します。

  • これを試してみてください:

ob_clean();ヘッダの前に

+0

素晴らしいです。 – Aziz

+0

肯定的なコメントを見て良かったのです... :)歓声.. – saravanan

1

ヘッダーは、データがブラウザに送信される前に設定する必要があります。

<?phpタグの前にスペースがないかどうかを確認してください。

ファイルがBOMなしでUTF-8として保存されていることを確認すると、BOマーカーが出力として解釈される可能性があります。

ホスト者がページに追加のコンテンツ/ヘッダーを追加していないか確認してください。

+0

これは、現在の設定と関連があるかどうかわからないので、コメントではなく、答えでなければなりません。 –

+0

header()は 'Content-type:application/pdf'では動作しますが、 'Content-type:image/...'でエラーが発生します。 – Aziz

関連する問題