作者kingoface (桑原)
看板PHP
标题[讨论] 中文档名下载问题!字元数多寡有影响?
时间Mon Apr 21 09:28:11 2014
各位好
小弟的程式码如下
非常制式的下载程式
<?php
if($_GET['f']!=null){
$file=iconv('utf-8','big5',$_GET['f']);//档案名称
$url="upload/"; //路径位置
header("Content-type:application");
header("Content-Disposition: attachment; filename=".$file);
readfile($url.str_replace("@","",$file));
exit(0);
}else{
echo "找不到相关档案....";
}
?>
因为存进去server的时候,使用者要求一定要用中文...
所以也就只好存中文,
结果发现要下载的时候.
如果中文字超过6个字会无法正常显示.
下载的档案会变2kb.
若是6个字元以内就非常正常可以开启.
请问这是什麽原因呢?
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 59.124.195.130
※ 文章网址: http://webptt.com/cn.aspx?n=bbs/PHP/M.1398043694.A.8FC.html
2F:→ npulove:路径对吗!? is_file检查一下是不是有档案吧! 04/21 10:15
3F:→ npulove:我自己测试很正常,你描述的状况只有在无档案发生。 04/21 10:22
4F:→ finalodyssey:一般会用档名存资料库,档案用纯英数字元的方式,下 04/21 10:33
5F:→ MOONRAKER:这种档名不是要用mb_encode_mimeheader()吗 04/21 10:34
6F:→ finalodyssey:载时在重新命名还原档名就好了 04/21 10:34
7F:→ CaptainH:把 '@' 取代掉的原因是什麽? 04/21 14:00
8F:推 CharlesJiang:一楼正解,通常IE有问题,其他browser是ok的 04/21 17:41