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";
}

相关文章

  • 详解JavaScript实现JS弹窗的三种方式

    详解JavaScript实现JS弹窗的三种方式

    这篇文章主要为大家介绍了JavaScript实现JS弹窗的三种方式,具有一定的参考价值,感兴趣的小伙伴们可以参考一下,希望能够给你带来帮助<BR>
    2022-01-01
  • JavaScript数据结构之广义表的定义与表示方法详解

    JavaScript数据结构之广义表的定义与表示方法详解

    这篇文章主要介绍了JavaScript数据结构之广义表的定义与表示方法,简单讲述了广义表的原理与相关概念,并结合实例形式分析了javascript定义与使用广义表的相关操作技巧,需要的朋友可以参考下
    2017-04-04
  • js实现仿微博滚动显示信息的效果

    js实现仿微博滚动显示信息的效果

    这篇文章主要介绍了js实现仿微博滚动显示信息的效果,通过由上往下滚动来实现不断显示微博的,而且每一天新微博都是通过淡入效果显示的,需要的朋友可以参考下
    2015-12-12
  • BootStrap modal模态弹窗使用小结

    BootStrap modal模态弹窗使用小结

    这篇文章主要为大家详细介绍了BootStrap modal模态弹窗使用小结,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2016-10-10
  • 一文讲清JS中for循环的所有用法

    一文讲清JS中for循环的所有用法

    这篇文章主要介绍了JavaScript中for循环的所有用法,文章通过详细的代码示例介绍JavaScript中的所有for循环,感兴趣的同学可以跟着小编一起来学习
    2023-05-05
  • php register_shutdown_function函数详解

    php register_shutdown_function函数详解

    register_shutdown_function() 函数可实现当程序执行完成后执行的函数,其功能为可实现程序执行完成的后续操作,需要的朋友可以参考下
    2017-07-07
  • 浅析JavaScript中浏览器的兼容问题

    浅析JavaScript中浏览器的兼容问题

    下面小编就为大家带来一篇浅析JavaScript中浏览器的兼容问题。小编觉得挺不错的,现在分享给大家,也给大家做个参考
    2016-04-04
  • js实现上一页下一页的效果【附代码】

    js实现上一页下一页的效果【附代码】

    下面小编就为大家带来一篇js实现上一页下一页的效果【附代码】。小编觉得非常不错。现在分享给大家。希望能给大家一个参考。
    2016-03-03
  • electron项目中实现视频下载保存到本地的方式

    electron项目中实现视频下载保存到本地的方式

    这篇文章主要介绍了electron项目中实现视频下载保存到本地的两种实现方式,每种方式结合实例代码给大家介绍的非常详细,需要的朋友参考下吧
    2024-07-07
  • canvas绘制多边形

    canvas绘制多边形

    本文主要分享了利用canvas画多边形的示例代码,具有很好的参考价值,下面跟着小编一起来看下吧
    2017-02-02

最新评论