php中强制下载文件的代码(解决了IE下中文文件名乱码问题)
2023-06-13 09:14:28 时间
中间遇到一个问题是提交的中文文件名直接放到header里在IE下会变成乱码,解决方法是将文件名先urlencode一下再放入header,如下。
复制代码代码如下:
<?php
$file_name=urlencode($_REQUEST["filename"]);
header("Pragma:public");header("Expires:0");
header("Cache-Control:must-revalidate,post-check=0,pre-check=0");
header("Content-Type:application/force-download");
header("Content-Type:application/vnd.ms-excel;charset=utf-8");
header("Content-Transfer-Encoding:binary");
header("Content-Disposition:attachment;filename=".$file_name);
echostripslashes($_REQUEST["content"]);
?>
解决PHPHeader下载文件在IE文件名中文乱码有两种常见的,一种是是把页面编码改成utf8,另一种是对中文url进入urlencode编码就可以解决了。
解决方案一(我的页面是utf-8编码):
$filename="中文.txt";
$ua=$_SERVER["HTTP_USER_AGENT"];
$encoded_filename=urlencode($filename);
$encoded_filename=str_replace("+","%20",$encoded_filename);
header("Content-Type:application/octet-stream");
if(preg_match("/MSIE/",$ua)){
header("Content-Disposition:attachment;filename="".$encoded_filename.""");
}elseif(preg_match("/Firefox/",$ua)){
header("Content-Disposition:attachment;filename*="utf8""".$filename.""");
}else{
header("Content-Disposition:attachment;filename="".$filename.""");
}
解决方法二
将文件名先urlencode一下再放入header,如下。
代码如下:
$file_name=urlencode($_REQUEST["filename"]);
header("Pragma:public");header("Expires:0");
header("Cache-Control:must-revalidate,post-check=0,pre-check=0");
header("Content-Type:application/force-download");
header("Content-Type:application/vnd.ms-excel;charset=utf-8");
header("Content-Transfer-Encoding:binary");
header("Content-Disposition:attachment;filename=".$file_name);
echostripslashes($_REQUEST["content"]);
?>
相关文章
- php://input allow_url_include,php allow_url_include的应用和解释_PHP教程
- php静态延迟方法,phpstatic延迟静态绑定_PHP教程
- PHP 浏览器缓存_php缓存引擎
- PHP比较运算符
- PHP Session是什么
- 借助 PHP 与 MySQL 轻松实现文件下载(php和mysql下载)
- 文件MySQL更新实现快速PHP文件升级(mysql更新php)
- PHP如何正确输出MySQL中文字符避免乱码?(php输出mysql乱码)
- PHP编程不可或缺的利器 MySQL数据库管理使用指南(mysql的php编程)
- 解决PHP输出MSSQL数据中文乱码问题(php输出MSSQL乱码)
- 驱动PHP无法找到MSSQL驱动解决方案(php 找不到mssql)
- Linux平台如何高效搜索PHP文件(linux搜索php)
- 用PHP连接MSSQL数据库:轻松搞定!(mssql连接类php)
- php中支持多种编码的中文字符串截取函数!
- PHP文件上传原理简单分析
- 用PHP+MySQL搭建聊天室功能实例代码
- php上传文件中文文件名乱码的解决方法
- 解决php接收shell返回的结果中文乱码问题
- 分享一段PHP制作的中文拼音首字母工具类
- 将FCKeditor导入PHP+SMARTY的实现方法