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 相关文章推荐
JAVASCRIPT对象及属性
Feb 13 Javascript
引用外部脚本时script标签关闭的写法
Jan 20 Javascript
使用angular写一个hello world
Jan 23 Javascript
javascript跨域的方法汇总
Oct 23 Javascript
jQuery easyUI datagrid 增加求和统计行的实现代码
Jun 01 Javascript
JS实现刷新父页面不弹出提示框的方法
Jun 22 Javascript
jQuery的Cookie封装,与PHP交互的简单实现
Oct 05 Javascript
jQuery Validate 数组 全部验证问题
Jan 12 Javascript
jquery实现tab选项卡切换效果(悬停、下方横线动画位移)
May 05 jQuery
Vue实现点击后文字变色切换方法
Feb 11 Javascript
解决element UI 自定义传参的问题
Aug 22 Javascript
梳理一下vue中的生命周期
Dec 30 Vue.js
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
Laravel 5 框架入门(二)构建 Pages 的管理功能
2015/04/09 PHP
PHP借助phpmailer发送邮件
2015/05/11 PHP
详解PHP安装mysql.so扩展的方法
2016/12/31 PHP
PHP中将一个字符串部分字符用星号*替代隐藏的实现代码
2019/09/08 PHP
laravel 修改.htaccess文件 重定向public的解决方法
2019/10/12 PHP
javascript 硬盘序列号+其它硬件信息
2008/12/23 Javascript
SlideView 图片滑动(扩展/收缩)展示效果
2010/08/01 Javascript
关于hashchangebroker和statehashable的补充文档
2011/08/08 Javascript
js调用webservice中的方法实现思路及代码
2013/02/25 Javascript
js取消单选按钮选中并判断对象是否为空
2013/11/14 Javascript
Extjs 4.x 得到form CheckBox 复选框的值
2014/05/04 Javascript
Javascript基础教程之break和continue语句
2015/01/18 Javascript
超精准的javascript验证身份证号的具体实现方法
2015/11/18 Javascript
详解iframe与frame的区别
2016/01/13 Javascript
HTML5+Canvas调用手机拍照功能实现图片上传(上)
2017/04/21 Javascript
bootstrap实现点击删除按钮弹出确认框的实例代码
2018/08/16 Javascript
React实现全局组件的Toast轻提示效果
2018/09/21 Javascript
vuex + keep-alive实现tab标签页面缓存功能
2019/10/17 Javascript
vue实现点击追加选中样式效果
2019/11/01 Javascript
基于javascript实现日历功能原理及代码实例
2020/05/07 Javascript
[16:43]Heroes19_剃刀(完美)
2014/10/31 DOTA
简单介绍Python中的struct模块
2015/04/28 Python
详解Python中表达式i += x与i = i + x是否等价
2017/02/08 Python
Python实现发送与接收邮件的方法详解
2018/03/28 Python
python匹配两个短语之间的字符实例
2018/12/25 Python
Python获取好友地区分布及好友性别分布情况代码详解
2019/07/10 Python
python Django中models进行模糊查询的示例
2019/07/18 Python
Python Pandas对缺失值的处理方法
2019/09/27 Python
python实现飞机大战游戏(pygame版)
2020/10/26 Python
Python导入模块包原理及相关注意事项
2020/03/25 Python
Django vue前后端分离整合过程解析
2020/11/20 Python
python邮件中附加文字、html、图片、附件实现方法
2021/01/04 Python
CSS3 实现的火焰动画
2020/12/07 HTML / CSS
英国门销售网站:Green Tree Doors
2020/01/07 全球购物
项目合作意向书范本
2014/04/01 职场文书
使用Navicat Premium工具将oracle数据库迁移到MySQL
2021/05/27 Oracle