作者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