PHP IE中下载附件问题解决方法

 在IE中下载附件之前要清空缓存、中文文件名要用urlencode编码,下面有个不错的示例,需要的朋友可以参考下

重点: 
 
1、在IE中下载附件之前要清空缓存。 
 
2、中文文件名要用urlencode编码。 
代码如下:
Header("Pragma: "); //不加的话,IE中会提示目标主机无法访问 
Header("Cache-Control: "); //不加的话,IE中会提示目标主机无法访问 
Header("content-type: $type"); 
Header("accept-ranges: bytes"); 
Header("Content-Transfer-Encoding:base64"); 
Header("accept-length: " . filesize($path_c)); 
Header("content-disposition: attachment; filename=" .urlencode($filename)); //IE中不用urlencode中文名会出现乱码 
readfile($path_c); 
exit; 
 
或 
代码如下:
header('Content-Description: File Transfer'); 
header('Content-Type: application/octet-stream'); 
header('Content-Disposition: attachment; filename='.urlencode(basename($file) )); //IE中不用urlencode中文名会出现乱码 
header('Content-Transfer-Encoding: binary'); //二进制传输 
header('Expires: 0'); 
header('Cache-Control: must-revalidate, post-check=0, pre-check=0'); //不加的话,IE中会提示目标主机无法访问 
header('Pragma: public'); //不加的话,IE中会提示目标主机无法访问 
header('Content-Length: ' . filesize($file)); 
ob_clean(); 
flush(); 
readfile($file); 
exit; 
 

时间: 2024-08-31 08:15:10

PHP IE中下载附件问题解决方法的相关文章

web.py在SAE中的Session问题解决方法

  这篇文章主要介绍了web.py在SAE中的Session问题解决方法(使用mysql存储),本文直接给出实现代码,代码中包含详细注释,需要的朋友可以参考下 这段时间一直想尝试着在SAE中使用Python,初步选择了Web.py框架做为开发框架,但是可怜SAE上的资料少的可怜,有点问题基本上解决不了,今天解决一个Session在Session的存储问题,在SAE中不能直接用本地文件存储,好像是权限的原因,我现在采用的是保存在mysql中,效果也不错.希望对大家有帮助.直接上代码了. index

ajax调用中ie缓存问题解决方法_AJAX相关

本文实例分析了ajax调用中ie缓存问题解决方法.分享给大家供大家参考,具体如下: ajax请求调用的过程中发现的问题:后台请求是一个简单的.aspx文件,而这个页面又没有考虑过缓存的影响,使用ajax调试的时候发现有时候根本不走后台代码直接返回结果了,所以估计是受到浏览器缓存的影响.网上搜了一下,果然是缓存的问题:"IE中如果XMLHttpRequest提交的URL与历史一样则使用缓存,根本不向服务器端提交.因此无法取到刚提交的数据或新的数据". 解决方法大致有下面几种: 1.只改进

java 传递过程中出现的问题解决方法

java 传递过程中出现的问题解决方法  * 测试conn关闭情况  */ package com.hb.test; import java.sql.connection; /**  *  * @author icecold  */ public class testconn {    static connection conn = null;     public static void main(string[] args)throws exception {         conn =

ajax调用中ie缓存问题解决方法

本文实例分析了ajax调用中ie缓存问题解决方法.分享给大家供大家参考,具体如下: ajax请求调用的过程中发现的问题:后台请求是一个简单的.aspx文件,而这个页面又没有考虑过缓存的影响,使用ajax调试的时候发现有时候根本不走后台代码直接返回结果了,所以估计是受到浏览器缓存的影响.网上搜了一下,果然是缓存的问题:"IE中如果XMLHttpRequest提交的URL与历史一样则使用缓存,根本不向服务器端提交.因此无法取到刚提交的数据或新的数据". 解决方法大致有下面几种: 1.只改进

zend framework框架中url大小写问题解决方法_php实例

有用过Zend Framework框架开发过项目的网友都知道 Zend Framework (ZF) MVC中的Controller和Action名称默认是不支持大小写的,这对于已经习惯了驼峰式代码风格的开发人员来说,显然是难以接受的.还好可以设定前端控制器FrontController的useCaseSensitiveActions参数来让Zend Framework支持大小写的Controller与Action命名,代码如下: 复制代码 代码如下: $front = Zend_Control

JavaMail servlet中下载附件问题

问题描述 如题,一个超链接中传3个参数给servlet, publicclassDownloadAttachextendsHttpServlet{publicvoiddoGet(HttpServletRequestrequest,HttpServletResponseresponse)throwsServletException,IOException{response.setContentType("text/html;charset=gb2312");ServletOutputSt

PHP中date时差问题解决方法

今天遇到 date("Y-m-d H:i:s") 的时间总是与实际时间对不上.于是查询了相关资料知道了原因,整理如下.       出现这一现象的原因: 从php5.1.0开始,php.ini里加入了date.timezone这个选项,默认情况下是关闭的,也就是显示的时间时区.默认情况都是格林威治标准时间和我们的时间(北京时间)差了正好8个小时.   解决方法:   1.最简单的方法就是不要用php5.1以上的版本   2.修改php.ini配置文件   可在php.ini中查找dat

JavaScript中的常见问题解决方法(乱码,IE缓存,代理)_javascript技巧

解决AJAX中文乱码常用的两种方法 1. 在客户端进行encodeURI(utf-8也可以不做,默认),在服务器端将iso-8859-1编码转为utf-8编码 2.在客户端进行两次encodeURI,在服务器端进行一次转换. 第2种方法能解决问题的原因: 进行两次转换后,在第一次getparameter方法中进行第一次解码,因为解出来的是英文(第一次encode之后的结果),所以不会出问题:第二次使用URLDecoder的decode方法,所以能正常解决这个问题.需要注意的是,在decode方法

iOS10中get在短信中下载/发送贴纸方法

在iphone设备中打开"短信"然后点击"新建一个对话窗口"然后在键盘上点击"App Store"图标,点击左边的"+"图标,即可进入贴纸包下载阶段. 然后我们点击"精选"部分发现苹果目前在iOS10操作系统中所提供的所有贴纸包.点击旁边的"获取"即可下载了,这个有点像下载app了,操作方法是一样的哦. 贴纸包下载完成之后,点击上面提到的"App Store"图标即可