ホームページ  >  記事  >  バックエンド開発  >  PHP は、ブラウザによってアップロードされたファイルの中国語名の文字化けに関連する問題を解決します - ほとんどのブラウザと互換性があります

PHP は、ブラウザによってアップロードされたファイルの中国語名の文字化けに関連する問題を解決します - ほとんどのブラウザと互換性があります

WBOY
WBOYオリジナル
2016-06-13 13:13:511000ブラウズ

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 までご連絡ください。