function sendFile($serverPath, $filename,$charset = 'UTF-8', $mimeType = 'application/octet-stream')
{
// 文件名乱码问题
if (preg_match("/MSIE/", $_SERVER["HTTP_USER_AGENT"])) {
$filename = urlencode($filename);
$filename = str_replace("+", "%20", $filename);// 替换空格
$attachmentHeader = "Content-Disposition: attachment; filename=\"{$filename}\"; charset={$charset}";
} else if (preg_match("/Firefox/", $_SERVER["HTTP_USER_AGENT"])) {
$attachmentHeader = 'Content-Disposition: attachment; filename*="utf8\'\'' . $filename. '"' ;
} else {
$attachmentHeader = "Content-Disposition: attachment; filename=\"{$filename}\"; charset={$charset}";
}
$filesize = filesize($serverPath);
//header("Pragma: public"); header("Expires: 0");
header("Cache-Control: must-revalidate, post-check=0, pre-check=0");
header("Content-Type: application/force-download");
header("Content-Type: {$mimeType}");
header($attachmentHeader);
header('Pragma: cache');
header('Cache-Control: public, must-revalidate, max-age=0');
header("Content-Length: {$filesize}");
readfile($serverPath);
exit;
}
[置顶] PHP解决浏览器 下载文件 中文名称乱码问题--兼容大多浏览器
最新推荐文章于 2021-04-11 18:17:23 发布
本文介绍了一个PHP脚本,用于解决不同浏览器环境下文件名乱码的问题,并实现文件的正确下载。该脚本通过检测用户代理来调整Content-Disposition头部,确保文件名在IE、Firefox等浏览器中正确显示。
730

被折叠的 条评论
为什么被折叠?



