作者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/m.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