0

テスト用の画像リンク

チャリンという音をクリックすると、Chrome、Safari、および FF はすべて、ブラウザでファイルを表示するのではなく、ファイルを自動的にダウンロードします。ブラウザで表示できるようにするにはどうすればよいですか? リンクとimgタグを使用すると問題なく動作しますが、直接使用するとダウンロードが強制されます。

PHP

// Figure the mime type
$mimetypes = array(
    'png' => 'image/png',
    'jpg' => 'image/jepg',
    'gif' => 'image/gif',
    'css' => 'text/css',
    'js' => 'application/x-javascript'
);
$ext = strtolower(pathinfo($filename, PATHINFO_EXTENSION));
$mime = "application/octet-stream";
if(array_key_exists($ext, $mimetypes)) {
    $mime = $mimetypes[$ext];
}

header('Content-Type: ' . $mime);
header('Expires: 0');
header('Cache-Control: must-revalidate');
header('Pragma: public');
header('Content-Length: ' . filesize($filename));
readfile($filename);
4

3 に答える 3

0

編集

問題は、コンテンツ タイプを正しく設定していないことです。そのため、ブラウザはおそらくそれが何であるかを推測しようとすることをあきらめ、ダウンロードするように求めます.

$ curl -D- http://wiki.justinzaun.com/buzz_aldrin/media/aldrin/250
HTTP/1.1 200 OK
Date: Thu, 20 Jun 2013 07:34:45 GMT
Server: Apache
Expires: 0
Cache-Control: must-revalidate
Pragma: public
Set-Cookie: PHPSESSID=49e5d03f1f0cf87119eef5bc6bb68d4d; path=/
Content-Length: 24909
Content-Type: image/jepg
于 2013-06-20T07:31:43.557 に答える
0

jpg画像で試したとします。$mimetypes 配列にタイプミスがあり、Content-Type が間違っています。私がそれを修理したとき、それは私にとってはうまくいきます。これは修復されたアレイです:

 $mimetypes = array(
    'png' => 'image/png',
    'jpg' => 'image/jpeg',
    'gif' => 'image/gif',
    'css' => 'text/css',
    'js' => 'application/x-javascript'
);
于 2013-06-20T07:32:24.123 に答える
0

この行にはエラーがあります:

'jpg' => 'image/jepg', 

そのはず

'image/jpeg'.
于 2013-06-20T07:32:41.500 に答える