IE php关于强制下载文件的代码

 更新时间:2008年08月23日 08:35:46   作者:  
这个东东,把我搞得晕晕乎乎的,FF下,没有强制下载文件这个问题。
 作者:xling
首先看 xls 文件的下载:

//header("Cache-Control: public");
header('content-type:application/vnd.ms-excel');
header("Content-Disposition:attachment; filename=report.xls");

如果不加第一句,会弹出 : Internet Explorer 无法下载 **.php (来自**网站)。Internet Explorer无法打开该 internet 网站。请求的网站不可用,或找不到,请以后再试。

而且连名字都不是所设的名字:report.xls,而是 **.php,把第一句加上就OK了。

在看 rar,gif 之类的,不加第一句,居然通过,不弹出那个错误框框!

如果是 gif等图片的话 ,Content-Disposition:attachment; 会强制弹出一个保存对话框。如果省略或是 inline 就会直接在网页里显示。

上面就是我用笨方法研究出来的(找不到可用的文档,我只好一个一个试)。

下面是 Content-type 应取值,

switch( $file_extension ) {
case "pdf": $ctype="application/pdf"; break;
case "exe": $ctype="application/octet-stream"; break;
case "zip": $ctype="application/zip"; break;
case "doc": $ctype="application/msword"; break;
case "xls": $ctype="application/vnd.ms-excel"; break;
case "ppt": $ctype="application/vnd.ms-powerpoint"; break;
case "gif": $ctype="image/gif"; break;
case "png": $ctype="image/png"; break;
case "jpeg":
case "jpg": $ctype="image/jpg"; break;
case "mp3": $ctype="audio/mpeg"; break;
case "wav": $ctype="audio/x-wav"; break;
case "mpeg":
case "mpg":
case "mpe": $ctype="video/mpeg"; break;
case "mov": $ctype="video/quicktime"; break;
case "avi": $ctype="video/x-msvideo"; break;

//The following are for extensions that shouldn't be downloaded (sensitive stuff, like php files)
case "php":
case "htm":
case "html":
case "txt": die("<b>Cannot be used for ". $file_extension ." files!</b>"); break;

default: $ctype="application/force-download";
}

相关文章

  • webpack打包时如何修改文件名的实现示例

    webpack打包时如何修改文件名的实现示例

    本文主要介绍了webpack打包时如何修改文件名的实现示例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2022-06-06
  • 使用Three.js制作一个3D奖牌页面

    使用Three.js制作一个3D奖牌页面

    本文将使用React+Three.js技术栈,制作一个专属的3D奖牌页面,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起动手试一试
    2022-01-01
  • 微信小程序单选框自定义赋值

    微信小程序单选框自定义赋值

    这篇文章主要介绍了微信小程序单选框如何自定义赋值,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2020-05-05
  • JavaScript-html标题滚动效果的简单实现

    JavaScript-html标题滚动效果的简单实现

    下面小编就为大家带来一篇JavaScript-html标题滚动效果的简单实现。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2016-09-09
  • dispatchEvent解决重叠元素响应事件示例详解

    dispatchEvent解决重叠元素响应事件示例详解

    这篇文章主要为大家介绍了dispatchEvent解决重叠元素响应事件示例详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2022-10-10
  • Javascript oop设计模式 面向对象编程简单实例介绍

    Javascript oop设计模式 面向对象编程简单实例介绍

    这篇文章主要介绍了Javascript oop设计模式 面向对象编程简单实例介绍的相关资料,这里附有实例代码帮助大家学习理解,需要的朋友可以参考下
    2016-12-12
  • Javascript将图片的绝对路径转换为base64编码的方法

    Javascript将图片的绝对路径转换为base64编码的方法

    这篇文章主要介绍了Javascript将图片的绝对路径转换为base64编码的方法,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-01-01
  • 一个通过script自定义属性传递配置参数的方法

    一个通过script自定义属性传递配置参数的方法

    编写了一个js插件,要使用该插件需要先在html中引入该插件Js,然后再添加一个script标签,在里面调用,需要的朋友可以看看
    2014-09-09
  • javascript中创建对象的几种方法总结

    javascript中创建对象的几种方法总结

    以下几种,是javascript中最常用的创建对象的方式。初学者看到后,可能会晕掉,甚至会觉得担心。其实完全不用担心,这些种方式,只需要掌握一两种,对其他的几种只需要理解就好了
    2013-11-11
  • 30分钟快速掌握Bootstrap框架

    30分钟快速掌握Bootstrap框架

    Bootstrap 是一个用于快速开发 Web 应用程序和网站的前端框架。接下来通过本文给大家介绍如何快速掌握Bootstrap,感兴趣的朋友一起学习吧
    2016-05-05

最新评论