>  기사  >  백엔드 개발  >  PHP解决浏览器 上载文件 中文名称乱码有关问题-兼容大多浏览器

PHP解决浏览器 上载文件 中文名称乱码有关问题-兼容大多浏览器

WBOY
WBOY원래의
2016-06-13 13:13:511026검색

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;
}
?
성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.