免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 3213 | 回复: 1
打印 上一主题 下一主题

php文件下载,文件另存为时文件名中的中文为乱码 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2009-03-23 22:26 |只看该作者 |倒序浏览
  1. <?php
  2. session_start();
  3. if(!isset($_SESSION['user'])){
  4. echo "<script>alert('抱歉,您还没有登录,无法下载文件!');history.back();</script>";
  5. exit();
  6. }
  7. $fileStr=$_POST['txtFile'];
  8. $fileStrArray=split('[/\]',$fileStr);

  9. $file_name = $fileStrArray[count($fileStrArray)-1];
  10. $file_dir =substr($fileStr,0,strlen($fileStr)-strlen($file_name));
  11. $encoded_filename = rawurlencode($file_name);

  12. if (!file_exists($file_dir . $file_name)) {
  13. echo "can't find file!";
  14. exit();
  15. }else{
  16. $file = fopen($file_dir . $file_name,"r");
  17. header("Content-type: application/octet-stream");
  18. header("Accept-Ranges: bytes");
  19. header("Accept-Length: ".filesize($file_dir . $file_name));
  20. header("Content-Disposition: attachment; filename=\"" . $encoded_filename . "\";");

  21. echo fread($file,filesize($file_dir . $file_name));
  22. fclose($file);
  23. exit();
  24. }     
  25. ?>
复制代码
请问,怎么改才能让要下载的文件另存为时,文件名中的中文显示正常?

[ 本帖最后由 wabomo 于 2009-3-23 23:23 编辑 ]

论坛徽章:
0
2 [报告]
发表于 2009-04-12 07:37 |只看该作者

  1. $ua = $_SERVER["HTTP_USER_AGENT"];
  2. $filename = "中文 文件名.txt";
  3. $encoded_filename = urlencode($filename);
  4. $encoded_filename = str_replace("+", "%20", $encoded_filename);
  5. header('Content-Type: application/octet-stream');
  6. if (preg_match("/MSIE/", $ua))
  7. {       
  8.         header('Content-Disposition: attachment; filename="' . $encoded_filename . '"');
  9. }
  10. else if (preg_match("/Firefox/", $ua))
  11. {       
  12.         header('Content-Disposition: attachment; filename*="utf8\'\'' . $filename . '"');
  13. }
  14. else
  15. {       
  16.         header('Content-Disposition: attachment; filename="' . $filename . '"');
  17. }
  18. print 'ABC';
  19. exit;
复制代码


我试过这种方法,但IE下还是乱码,记得程序要保存UTF-8格式.
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP