Re: [請益] 請問header()函式 中文名稱下載問題
問題的癥結在於IE沒辦法自己判斷你的檔名是什麼編碼
所以他會用預設的編碼去解釋你的檔名
Fx自己會辨識就不會有這種問題
CA4Z0ZZK這個應該是IE cache的檔名
作法有兩個
1.把檔名都變成預設編碼
$fn=iconv('utf-8','big5',$fn);
2.把檔名urlencode
因為這只有IE適用 Fx的會直接把encode出來的東西(%XX)直接顯示出來
所以要判斷瀏覽器是IE的時候才 $fn=urlencode($fn);
p.s 這裡預設的編碼
好像伺服器的設定也可以決定 不過這方面我就沒試過了
※ 引述《gmoz (Gmoz)》之銘言:
: $query = "SELECT * FROM uploads WHERE upload_id = {$_GET['uid']}";
: $result = mysql_query($query);
: mysql_query("SET CHARACTER SET 'utf8'"); //這行試過了ˊˋ
: $row=mysql_fetch_array($result);
: $fn=$row['file_name'];
: $extension = explode('.' , $fn);
: $the_file='../uploads/'.$_GET['uid'].'.'.$extension[1];
: header("Content-disposition:attachment;filename=$fn");
: readfile ($the_file);
: 小弟要做的是個讓人上傳東西,然後可下載的網頁
: 使用view_files.php傳出uid連到download_fils.php來執行如上的PHP碼
: 英文檔名沒問題,可正常顯示檔名並且下載
: 遇到中文檔名時 (把$fn使用echo印出來是正確的原檔名)
: 但是放到header之後檔名卻出現CA4Z0ZZK.等等的英文字和數字(而且每次點都不一樣)
: 由於屆時上傳檔案的可能會包含些公家機關,
: 因此不能上傳中文檔名可能會造成不便
: 希望各位前輩能幫忙解答,小弟感激不敬
: appsev 2.5.5
: php5
: phpMyAdmin 2.6.4-pl4
: MySQL 版本 5.0.16-nt
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 123.193.33.6
推
07/22 13:04, , 1F
07/22 13:04, 1F
→
07/22 13:04, , 2F
07/22 13:04, 2F
→
07/22 13:05, , 3F
07/22 13:05, 3F
→
07/22 15:29, , 4F
07/22 15:29, 4F
推
07/23 12:18, , 5F
07/23 12:18, 5F
→
07/23 12:18, , 6F
07/23 12:18, 6F
→
07/23 12:19, , 7F
07/23 12:19, 7F
→
07/23 13:04, , 8F
07/23 13:04, 8F
推
07/23 13:07, , 9F
07/23 13:07, 9F
→
07/23 13:08, , 10F
07/23 13:08, 10F
討論串 (同標題文章)
本文引述了以下文章的的內容:
完整討論串 (本文為第 2 之 2 篇):
PHP 近期熱門文章
PTT數位生活區 即時熱門文章