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


Posted in Javascript onAugust 23, 2008

 作者: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 相关文章推荐
jquery键盘事件使用介绍
Nov 01 Javascript
js二级地域选择的实现方法
Jun 17 Javascript
ff下JQuery无法监听input的keyup事件的解决方法
Dec 12 Javascript
JavaScript动态改变div属性的实现方法
Jul 22 Javascript
JS中innerHTML和pasteHTML的区别实例分析
Jun 22 Javascript
利用iscroll4实现轮播图效果实例代码
Jan 11 Javascript
angular.js4使用 RxJS 处理多个 Http 请求
Sep 23 Javascript
vue.js todolist实现代码
Oct 29 Javascript
vue2.0实现的tab标签切换效果(内容可自定义)示例
Feb 11 Javascript
详解a标签添加onclick事件的几种方式
Mar 29 Javascript
javascript中的数据类型检测方法详解
Aug 07 Javascript
Bootstrap FileInput实现图片上传功能
Jan 28 Javascript
FormValidate 表单验证功能代码更新并提供下载
Aug 23 #Javascript
Javascript 篱式条件判断
Aug 22 #Javascript
解决AJAX中跨域访问出现'没有权限'的错误
Aug 20 #Javascript
javascript:void(0)的真正含义实例分析
Aug 20 #Javascript
利用404错误页面实现UrlRewrite的实现代码
Aug 20 #Javascript
一些不错的js函数ajax
Aug 20 #Javascript
jQuery formValidator表单验证插件开源了 含API帮助、源码、示例
Aug 14 #Javascript
You might like
php递归列出所有文件和目录的代码
2008/09/10 PHP
使用PHP遍历文件夹与子目录的函数代码
2011/09/26 PHP
PHP实现绘制3D扇形统计图及图片缩放实例
2014/10/01 PHP
ThinkPHP分组下自定义标签库实例
2014/11/01 PHP
IE中jscript/javascript的条件编译
2006/09/07 Javascript
用cssText批量修改样式
2009/08/29 Javascript
浅谈javascript的数据类型检测
2010/07/10 Javascript
Query中click(),bind(),live(),delegate()的区别
2013/11/19 Javascript
node.js中的console.timeEnd方法使用说明
2014/12/09 Javascript
JQuery日历插件My97DatePicker日期范围限制
2016/01/20 Javascript
浅谈Node.js之异步流控制
2017/10/25 Javascript
jquery ajaxfileupload异步上传插件
2017/11/21 jQuery
JS实现将链接生成二维码并转为图片的方法
2018/03/17 Javascript
JS实现调用本地摄像头功能示例
2018/05/18 Javascript
js实现前面自动补全位数的方法
2018/10/10 Javascript
微信小程序API—获取定位的详解
2019/04/30 Javascript
使用JQuery自动完成插件Auto Complete详解
2019/06/18 jQuery
Antd中单个DatePicker限定时间输入范围操作
2020/10/29 Javascript
Vue 实现一个简单的鼠标拖拽滚动效果插件
2020/12/10 Vue.js
[02:46]完美世界DOTA2联赛PWL DAY4集锦
2020/11/03 DOTA
Python ORM框架SQLAlchemy学习笔记之关系映射实例
2014/06/10 Python
python通过索引遍历列表的方法
2015/05/04 Python
Python中数字以及算数运算符的相关使用
2015/10/12 Python
python定时关机小脚本
2018/06/20 Python
pycharm访问mysql数据库的方法步骤
2019/06/18 Python
Python使用pyyaml模块处理yaml数据
2020/04/14 Python
Python使用Numpy模块读取文件并绘制图片
2020/05/13 Python
Overload和Override的区别。Overloaded的方法是否可以改变返回值的类型
2013/10/30 面试题
行政经理岗位职责
2013/11/09 职场文书
迎接领导欢迎词
2014/01/11 职场文书
2014年感恩母亲演讲稿
2014/05/27 职场文书
个人房屋买卖协议书(范本)
2014/10/04 职场文书
和谐家庭事迹材料
2014/12/20 职场文书
九寨沟导游词
2015/02/02 职场文书
民间借贷纠纷起诉书
2015/08/03 职场文书
Anaconda配置各版本Pytorch的实现
2021/08/07 Python