主页

问题说明:今天再做附件下载时,因为附件名称为中文,在苹果手机safari浏览器下载文件中文名称直接乱码,如图:
WX20231219-151526@2x.png
解决方法:
php代码:

public fuction downloadFile($fileurl, $filename, $charset = 'UTF-8'){
   if (preg_match("/MSIE/", $_SERVER["HTTP_USER_AGENT"])) {
      $filename = urlencode($filename);
      $filename = str_replace("+", "%20", $filename);// 替换空格
      $attachment = "attachment; filename=\"{$filename}"; charset={$charset}"; 
   } else if (preg_match("/Firefox/", $_SERVER["HTTP_USER_AGENT"])) {
      $attachment = 'attachment; filename*=utf-8\'\'' . $filename; 
   } else if (preg_match("/Safari/", $_SERVER["HTTP_USER_AGENT"])) {
      $filename = rawurlencode($filename); // 注意:rawurlencode与urlencode的区别
      $attachment = 'attachment; filename*=utf-8\'\'' . $filename;
   } else {
      $filename = rawurlencode($filename);
      $attachment = "attachment; filename=\"{$filename}"; charset={$charset}";
   }
   header('Pragma: public');
   header("Content-Transfer-Encoding: Binary");
   header('Content-Type: application/octet-stream');
   header("Content-disposition:".$attachment."");
   readfile($fileurl);  
}
      

版权属于:三分快乐,七纷幸福
作品采用:本作品采用 知识共享署名-相同方式共享 4.0 国际许可协议 进行许可。
1
查看目录

目录

来自 《解决苹果手机下载文件文件名称乱码的问题》
评论

三分快乐,七纷幸福
104 文章数
7 评论量
11 分类数
107 页面数
已在风雨中度过 2年246天18小时51分