php文件在浏览器乱码,PHP解决浏览器 下载文件 中文名称乱码问题--兼容大多浏览器...

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;

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值