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

重点:

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;

(0)

相关推荐

  • PHP 下载文件时自动添加bom头的方法实例

    首先弄清楚,什么是bom头?在Windows下用记事本之类的程序将文本文件保存为UTF-8格式时,记事本会在文件头前面加上几个不可见的字符(EF BB BF),就是所谓的BOM(Byte order Mark).不仅限于 记事本保存的文件,只要在文件的开口包含了EF BB BF 几个不可见的字符(十六进制应该是是xEFxBBxBF,用二进制编辑文件可见).这像是一个约定俗成的东西,当系统看到这玩意的时候,就会觉得你这个文件是UTF-8编码的. 如果你的接口是UTF-8的,你需要强制下载一个文件,

  • php下载excel无法打开的解决方法

    php下载excel文件,1.在下载的过程中不要 输出任何非文件信息,比如 echo log信息. 否则下载后的文件无法打开,提示格式错误或者文件被破坏.2. 输出的excel格式一定要和后缀名保存一直,否也会提示格式错误或者文件被破坏 复制代码 代码如下: if (file_exists(CACHE_PATH . $file_name)){            //$this->logger->error('file realpath:'.realpath(CACHE_PATH . $fi

  • php实现文件下载(支持中文文名)

    复制代码 代码如下: /*======================================================  $FileName 为文件名称,必传  $FilePath 为文件路径.选填,可以为相对路径或者绝对路径      路径只能由英文跟数据组成,不能带有中文 ======================================================*/ <?php  header("Content-type: text/html;char

  • 解析php多线程下载远程多个文件

    复制代码 代码如下: function remote($urls, $name = '', $path = '', $dir = './images/') { if (!is_array($urls) or count($urls) == 0) {  return false; } dmkdir($dir); $curl = $text = array(); foreach($urls as $k => $v) {  if (!empty($v) && preg_match(&quo

  • 解析获取优酷视频真实下载地址的PHP源代码

    复制代码 代码如下: <?php //--调用方法/demo.php?url=http://v.youku.com/v_show/id_XMzkyODA2NTEy.html echo getYoukuFlv($_GET['url']); function getYoukuFlv($url){     preg_match("#id_(.*?)\.html#",$url,$out);     $id=$out[1];     $content=get_curl_contents('

  • php实现下载限制速度示例分享

    复制代码 代码如下: // local file that should be send to the client$local_file = 'test-file.zip'; // filename that the user gets as default$download_file = 'your-download-name.zip'; // set the download rate limit (=> 20,5 kb/s)$download_rate = 20.5; if(file_e

  • php 强制下载文件实现代码

    复制代码 代码如下: <?php $file = 'monkey.gif'; if (file_exists($file)) {     header('Content-Description: File Transfer');     header('Content-Type: application/octet-stream');     header('Content-Disposition: attachment; filename='.basename($file));     hea

  • 解析php下载远程图片函数 可伪造来路

    gurl 要下载的图片地址$rfurl 来路.如果目标图像做了防盗链设置,可以绕过.$filename 下载图片保存的文件名,相对路径,不要用realpath$gcookie 调整cookie 伪造的cookie$JumpCount 跳转计数$maxtime 最大次数调用方法:DownImageKeep("http://www.baidu.com/img/baidu_jgylogo2.gif","http://baidu.com","a.gif"

  • 解决PHP超大文件下载,断点续传下载的方法详解

    最近导出的时候出现一个php内存溢出的问题,原因就是在于下载的时候读取生成的临时文件过大,PHP内存无法容纳,一开如是想到更改PHP内存限制,但是这个只是一个缓兵之计,于是想到了另外一个方法是把文件分次读取,并下载. 以下是源代码: 复制代码 代码如下: <?php $sourceFile = "1.tmp"; //要下载的临时文件名 $outFile = "用户订单.xls"; //下载保存到客户端的文件名 $file_extension = strtolo

  • 分享一个超好用的php header下载函数

    复制代码 代码如下: <?php/** * 发送文件 * * @author: legend(legendsky@hotmail.com) * @link: http://www.ugia.cn/?p=109 * @description: send file to client * @version: 1.0 * * @param string   $fileName      文件名称或路径 * @param string   $fancyName     自定义的文件名,为空则使用file

  • 解析如何在PHP下载文件名中解决乱码的问题

    通过把Content-Type设置为application/octet-stream,可以把动态生成的内容当作文件来下载,相信这个大家都会.那么用Content-Disposition设置下载的文件名,这个也有不少人知道吧.基本上,下载程序都是这么写的: 复制代码 代码如下: $filename = "document.txt";header('Content-Type: application/octet-stream');header('Content-Disposition: a

  • 解析PHP实现下载文件的两种方法

    方法一: 复制代码 代码如下: header('Content-Description: File Transfer'); header('Content-Type: application/octet-stream'); header('Content-Disposition: attachment; filename='.basename($filepath)); header('Content-Transfer-Encoding: binary'); header('Expires: 0′

  • php读取csv实现csv文件下载功能

    第一段是读文件,下载.第二段是字符串下载. 复制代码 代码如下: <?php$fileName = "prefs.csv";header('Content-Type: application/octet-stream');header('Content-Disposition: attachment; filename=' . $fileName);header('Content-Transfer-Encoding: binary');header('Content-Length

  • 使用PHP下载CSS文件中的图片的代码

    共享一段使用PHP下载CSS文件中的图片的代码 复制代码 代码如下: <?php //note 设置PHP超时时间 set_time_limit(0); //note 取得样式文件内容 $styleFileContent = file_get_contents('images/style.css'); //note 匹配出需要下载的URL地址 preg_match_all("/url\((.*)\)/", $styleFileContent, $imagesURLArray);

  • php对csv文件的读取,写入,输出下载操作详解

    复制代码 代码如下: <?php       $file = fopen('text.csv','r'); while ($data = fgetcsv($file)) {    //每次读取CSV里面的一行内容      //print_r($data); //此为一个数组,要获得每一个数据,访问数组下标即可   $goods_list[] = $data;    }//print_r($goods_list);echo $goods_list[0][1];    fclose($file);

  • php 下载保存文件保存到本地的两种实现方法

    第一种: <?php function downfile() { $filename=realpath("resume.html"); //文件名 $date=date("Ymd-H:i:m"); Header( "Content-type: application/octet-stream "); Header( "Accept-Ranges: bytes "); Header( "Accept-Length

  • 使用PHP强制下载PDF文件示例

    我们有时会遇到这样一种情况,当需要下载一个PDF文件时,如果不经处理会直接在浏览器里打开PDF文件,然后再需要通过另存为才能保存下载文件.本文将通过PHP来实现直接下载PDF文件. 实现原理:我们仅仅只需要修改页面HTTP头,把Content-Type设置为force-download,问题即可解决. 请看代码: 复制代码 代码如下: forceDownload("pdfdemo.pdf"); function forceDownload($filename) { if (false

  • php使浏览器直接下载pdf文件的方法

    有的浏览器安装了pdf打开程序关联到浏览器,所以直接写上pdf路径时是打开pdf而不是下载,下面我就说下如果让他们只是下载,而不是浏览. 创建一个php文件 复制代码 代码如下: <?php$file = $_GET['file'];$arr = explode('/',$file);header('Content-type: application/pdf');header('Content-Disposition: attachment; filename="'.array_pop($

随机推荐