Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby-on-rails-4/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 没有在IE、firefox/chrome/其他浏览器中显示的图像很好!_Php_Http_Http Headers - Fatal编程技术网

Php 没有在IE、firefox/chrome/其他浏览器中显示的图像很好!

Php 没有在IE、firefox/chrome/其他浏览器中显示的图像很好!,php,http,http-headers,Php,Http,Http Headers,我需要从我使用的一个文章写作网站上为多个文件(img/video/mp3)提供服务器,唯一和主要的问题是: 文章中的所有图像都应该由该类显示,并且该类不显示图像(通过URL调用时启动下载)。 我设法通过删除这一行(可能是第107行)来解决这个问题 这对我显示chrome和firefox的图像很有帮助,但IE仍然启动了下载:( 有没有办法解决这个问题 编辑: 我在元类型中添加了以下内容: case "jpg": $content_type="image/".$file_extension; bre

我需要从我使用的一个文章写作网站上为多个文件(img/video/mp3)提供服务器,唯一和主要的问题是: 文章中的所有图像都应该由该类显示,并且该类不显示图像(通过URL调用时启动下载)。 我设法通过删除这一行(可能是第107行)来解决这个问题

这对我显示chrome和firefox的图像很有帮助,但IE仍然启动了下载:(

有没有办法解决这个问题

编辑:

我在元类型中添加了以下内容:

case "jpg": $content_type="image/".$file_extension; break; 
case "gif": $content_type="image/".$file_extension; break; 
case "png": $content_type="image/".$file_extension; break; 

我的猜测是IE仍然需要一个有效的内容类型头(假设类没有为图像提供一个,因为它只是强制下载)。可能需要更改这段代码:

switch( $file_extension ) { // the file type
  case "mp3": $content_type="audio/mpeg"; break;
  case "mpg": $content_type="video/mpeg"; break;
  case "avi": $content_type="video/x-msvideo"; break;
  case "wmv": $content_type="video/x-ms-wmv";break;
  case "wma": $content_type="audio/x-ms-wma";break; 
  default: $content_type="application/force-download";
} 
并添加图像扩展及其关联的MIME类型。

将Content Disposition设置为attachment实际上是为了不直接显示资源:

正文部分可以指定为“附件”,以表明它们与邮件正文是分开的,并且它们的显示不应该是自动的,而是取决于用户的进一步行动

但是,尽管该文件是MIME的一部分,而不是HTTP的一部分,但它“被提议作为源服务器的一种方式,在用户请求将内容保存到文件中时,建议使用默认文件名。”

除此之外,建议使用特殊媒体类型应用程序/八位字节流来暗示下载:

如果在具有应用程序/八位字节流内容类型的响应中使用此标头,则暗示用户代理不应显示响应,而应直接进入“将响应另存为…”对话框

但是,由于您希望直接显示资源,请改用“内联内容处置”值。这样,您还可以使用“文件名”参数指定与URL不同的文件名


另请参阅,以获取有关用于编码filename参数的编码的更多信息。

什么值具有
$this->properties[“name”]
?{anythis}.jpg,其中任何内容都是a-zA-Z0-9@Ronan Dejhero:嗯,附件意味着下载文件而不是直接显示文件;请尝试内联方式。@Ronan Dejhero:返回的实际头是什么?Pragma:无缓存过期:0缓存控制:公共内容描述:文件传输内容类型:image/jpg内容处置:内联;filename=“image_1.jpg内容传输编码:二进制内容范围:0-254645”);内容长度:254645
switch( $file_extension ) { // the file type
  case "mp3": $content_type="audio/mpeg"; break;
  case "mpg": $content_type="video/mpeg"; break;
  case "avi": $content_type="video/x-msvideo"; break;
  case "wmv": $content_type="video/x-ms-wmv";break;
  case "wma": $content_type="audio/x-ms-wma";break; 
  default: $content_type="application/force-download";
}