Php 为什么我的图像被下载而不是在浏览器中查看?

Php 为什么我的图像被下载而不是在浏览器中查看?,php,image,http-headers,Php,Image,Http Headers,用于测试 当我点击clink时,Chrome、Safari和FF都会自动下载一个文件,而不是在浏览器中查看它。如何使其在浏览器中可见?使用链接和img标记可以很好地工作,只是当直接使用时,它会强制下载 $ 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 Cach

用于测试

当我点击clink时,Chrome、Safari和FF都会自动下载一个文件,而不是在浏览器中查看它。如何使其在浏览器中可见?使用链接和
img
标记可以很好地工作,只是当直接使用时,它会强制下载

$ 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
PHP

编辑

问题是您设置的内容类型不正确。因此,浏览器可能只是放弃猜测它是什么,并要求您下载

$ 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

我想你用jpg图像试过了。您的$mimetypes数组中有一个输入错误,这会导致内容类型错误。当我修理它的时候,它对我来说很好用。 这是修复后的阵列:

 $mimetypes = array(
    'png' => 'image/png',
    'jpg' => 'image/jpeg',
    'gif' => 'image/gif',
    'css' => 'text/css',
    'js' => 'application/x-javascript'
);

此行有一个错误:

'jpg' => 'image/jepg', 
应该是

'image/jpeg'.

您确定您的文件扩展名显示在
$mimetypes
数组中吗?如果没有,则
内容类型:
标题将设置为
应用程序/octet流
,浏览器将下载该文件。记住:
JPG!=jpg
@MikeW-我有一个
strtolower
。你还有一个打字错误。看看下面我的答案。啊,我已经看了好几天了。