[討論] 中文檔名下載問題!字元數多寡有影響?

作者: kingoface (Vince)   2014-04-21 09:28:11
各位好
小弟的程式碼如下
非常制式的下載程式
<?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個字元以內就非常正常可以開啟.
請問這是什麼原因呢?
作者: DarkKiller (System hacked)   2014-04-21 09:37:00
作者: npulove (18250等待)   2014-04-21 10:15:00
路徑對嗎!? is_file檢查一下是不是有檔案吧!我自己測試很正常,你描述的狀況只有在無檔案發生。
作者: finalodyssey (Odyssey)   2014-04-21 10:33:00
一般會用檔名存資料庫,檔案用純英數字元的方式,下
作者: MOONRAKER (㊣牛鶴鰻毛人)   2014-04-21 10:34:00
這種檔名不是要用mb_encode_mimeheader()嗎
作者: finalodyssey (Odyssey)   2014-04-21 10:34:00
載時在重新命名還原檔名就好了
作者: CaptainH (Cannon)   2014-04-21 14:00:00
把 '@' 取代掉的原因是什麼?
作者: CharlesJiang   2014-04-21 17:41:00
一樓正解,通常IE有問題,其他browser是ok的

Links booklink

Contact Us: admin [ a t ] ucptt.com