php文件下载,为啥文件名有中文的提示找不到文件??

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了php文件下载,为啥文件名有中文的提示找不到文件??相关的知识,希望对你有一定的参考价值。

<?php
$file_name = "English.doc";
$file_dir = "/upfiles/";
if (!file_exists($file_dir . $file_name))
echo "can't find file!";
exit;
else
$file = fopen($file_dir . $file_name,"r");

Header("Content-type: application/octet-stream");
Header("Accept-Ranges: bytes");
Header("Accept-Length: ".filesize($file_dir . $file_name));
Header("Content-Disposition: attachment; filename=" . $file_name);

echo fread($file,filesize($file_dir . $file_name));
fclose($file);
exit;
?>
请大虾指点指点!谢谢

如果网页编码是GB2312就不会出问题,因为系统中的文件名应该是GB2312编码的,否则就会文件找不到。因为不同编码的同一个汉字,其代码是不同的。 参考技术A $file_dir = "/upfiles/";
这里不对,php读取文件,不能用这种文件的路径形式, 这样的话,他就会去目录/upfiles下找,而你要表达的意思是去网站的根目录下如(/var/www/html/upfiles)下找,所以你可以用相对路径,如../upfiles/之类的,如果想绝对路径的话就得写全了,如/var/www/html/upfiles,当然了,前面的用一个参数来表示最好了!

以上是关于php文件下载,为啥文件名有中文的提示找不到文件??的主要内容,如果未能解决你的问题,请参考以下文章

问一下,为啥代码在RedHat里面gcc编译出错,提示找不到module.h等头文件

为啥安装应用程序时经常会出现找不到DATA1.CAB这种提示?

VC提示找不到dshow.h文件,添加DirextX 之后,为啥出现一堆问题? 急救!

linux系统下使用php上传文件提示找不到临时文件夹?在不修改系统php.ini前提下,有其他办法更改该设置吗?

为啥我在命令提示符中找不到 PIP? [复制]

【求助】为啥我linux下访问mysql它提示找不到命令啊?