帮系做了一个网站,有一个上传资源和下载资源的模块. 部署在我机器上时,上传上去的文件下载来下都是没有问题的(doc,txt...都正常). 但部署到服务器上去(win server 2003),文件下载下来都是乱码的,除了只有英文的txt文件. 服务器上的用的是apache2.2 php5,而且php5的HOME是用我机器上的HOME覆盖的. 请教大家,这个问题的原因是什么?(系统文件编码?)
怎么解决这个问题? 谢谢.急...
怎么解决这个问题? 谢谢.急...
解决方案 »
- wamp5 中的mysql 和我本机上安装的mysql是不是一个?
- PHP循环插入数据库为什么只是可以插入1000多条就停止了
- 大于125302的正整数正则表达式怎么写
- 如何将保存到session中的类数组与一个现有的类数组比较啊
- discuz有个计划任务,是靠每个用户的访问触发还是。。。
- 打不开mysql数据库中的一个表格
- 急!我设计的一个网站有重大漏洞.
- 如何用header进行页面的跳转?
- 利用IMAP从邮件服务器上读出邮件如何取得一封邮件是TO还是CC给我的
- Connection failed: SQLSTATE[HY000] [2002] 由于目标计算机积极拒绝,无法连接。
- php怎么支持中文注册?
- 关于一个运算符的小问题!
还有是不是服务器缺少字体啊
系统编码 ide工具编码
$image_name = mktime().mt_rand(10000,100000).$_FILES['file']['name']; //图像的新名字
move_uploaded_file($_FILES['file']['tmp_name'],iconv("UTF-8", "gb2312", BASEIMAGEPATH.'/'.$image_name)); //移动图像
主要需要搞清楚上传文件时如果文件名里有中文需要进行相应的转码
其实文件下载跟编码没有关系的,但是你做法有问题所以跟编码就有关系了。做法1: http://localhost/download.php?file=xxxx.doc
做法2: http://localhost/document/xxxx.doc我猜你肯定用的是第二种做法,因为doc文件不是动态网页,所以当成文本打开,内容的编码用缺省的ISO编码,这样肯定是乱码了。如果是第一种做法就不会有这个问题。如果非要采用做法2的话,可以改doc的MIME格式定义。配置如下:
AddType application/microsoft .xls .doc .ppt .mdb
我用的是做法1:
http://192.168.131.131/ied/down.php?dn_id=35
$fn = array_pop( explode( '/', strtr( $this->filename, '', '/' ) ) );
header( "Pragma: public" );
header( "Expires: 0" ); // set expiration time
header( "Cache-Component: must-revalidate, post-check=0, pre-check=0" );
header( "Content-type:".$this->mineType );
header( "Content-Length: " . filesize( $this->filename ) );
header( "Content-Disposition: attachment; filename=" . $this->fileDesc . "." . $this->filetype );
header( 'Content-Transfer-Encoding: binary' );
readfile( $this->filename );
return true;