作者gmoz (Gmoz)
看板PHP
標題[請益] 請問header()函式 中文名稱下載問題
時間Sun Jul 22 10:26:37 2007
$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: 210.240.177.100
※ 編輯: gmoz 來自: 210.240.177.100 (07/22 10:36)
1F:→ gmoz:發現問題了 原因是ie6不支援utf8 改成 07/22 12:21
2F:→ gmoz:mysql_query("SET CHARACTER SET 'big5'");就可以了 07/22 12:21
3F:推 cde123:IE6 不支援 utf8...? 07/22 22:24
4F:推 gmoz:也不是那種不支援的意思 我是指參數傳送過程中 07/23 13:04