问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

php中强制下载文件的代码(解决了IE下中文文件名乱码问题)

发布网友 发布时间:2022-04-06 00:10

我来回答

1个回答

热心网友 时间:2022-04-06 01:39

中间遇到一个问题是提交的中文文件名直接放到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);
echo
stripslashes($_REQUEST['content']);
?>
解决PHP
Header下载文件在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
.
'"');
}
else
if
(preg_match("/Firefox/",
$ua))
{
header('Content-Disposition:
attachment;
filename*="utf8'''
.
$filename
.
'"');
}
else
{
header('Content-Disposition:
attachment;
filename="'
.
$filename
.
'"');
}
解决方法二
将文件名先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);
echo
stripslashes($_REQUEST['content']);
?>
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
找专业防水队做完还漏水怎么维权 法院会受理房屋漏水造成的纠纷吗? 巴西龟最长活多久,家养!!! 养胃的药最好的是什么啊 婴儿积食发烧不愿吃药怎么办 板门穴位在哪个部位 手机设置放偷看的方法? 凝结水回收器生产厂家? 个人账户养老金预测公式:现有5万元,缴费20年,能领多少钱? 临沂比较有名的男装品牌 php 下载文件,中文乱码问题 如何解决PHP中文乱码问题 怎样在PHP下载文件名中解决乱码 从服务器下载的网站php文件 在本地打开就是乱码,怎么解决呢 用php下载文件但是打开是乱码(用HTML运行的) php 下载含有中文的文件时,中文为乱码,怎么解决? 如何在PHP下载文件名中解决乱码 PHP修改配置文件参数 怎样在php代码里更改php.ini配置 怎么修改phpstorm服务器配置 请问关于PHP应该怎么配置环境,如何编辑~ 怎样在Apache里修改PHP的配置 php如何修改文件中的配置信息 linux怎么修改php的配置文件 php如何修改文件中的配置信息~呢? 四、用PHP制作动态数字时钟。 php生成随机数 在随机时间转换 PHP /Date(1322500609000)/ 怎么转化 PHP中如何把int(10)类型的时间格式给转换成以分钟或秒为单位的格式输出 关于时间格式的转换,MYSQL,PHP,10位数字表示时间 PHP读取文件乱码问题 谷歌浏览器怎么安装控件? 如何在谷歌Chrome浏览器中添加插件 谷歌浏览器怎么安装插件 谷歌浏览器插件安装设置方法 谷歌浏览器怎么安装工行控件,安装成功之后还是提醒未安装 谷歌浏览器怎样换肤和添加插件 谷歌浏览器怎样添加非官方插件 这个版本的Chrome浏览器的添加插件的按钮在哪里 如何为谷歌浏览器添加插件 怎么在chrome 浏览器61版本禁用js 谷歌浏览器怎么关掉JS 浏览器怎么禁用和开启Javascript 浏览器禁用了JaScript,怎么开启 怎么在Google Chrome 浏览器上启用 Javascript 功能 谷歌浏览器的谷歌浏览器的javascript怎么启用 js怎么关闭谷歌浏览器--所有窗口(没试过的别回答,急用,谢谢各位师兄师姐了~) 谷歌浏览器怎么应用页面javascript脚本 如何在谷歌浏览器中启用JavaScript js怎样关闭chrome浏览器 平板电脑怎么设置谷歌浏览器的JavaScript 谷歌浏览器怎么截屏