background image

处理后保存的文件名就不会出现乱码,也可以正常读取文件,实现中文名称文件的上传、
下载。

其实还有更好的解决方法,彻底与系统脱离,也就不用考虑系统是何编码。可以生

成一个只有字母和数字的序列作为文件名,而将原来带有中文的名字保存在数据库中,
这样调用 move_uploaded_file()就不会出现问题,下载的时候只需将文件名改为原来
带有中文的名字。实现下载的代码如下

header("Pragma: public");
header("Expires: 0");
header("Cache-Component: must-revalidate, post-check=0, pre-

check=0");

header("Content-type: $file_type");
header("Content-Length: $file_size");
       header("Content-Disposition: attachment; filename=\"$file_name\"");
header("Content-Transfer-Encoding: binary");
readfile($file_path);  
$file_type 是文件的类型,$file_name 是原来的名字,$file_path 是保存在服务

上文件的地址。