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

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

WBOY
リリース: 2016-06-13 13:13:51
オリジナル
1047 人が閲覧しました

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;
}
ログイン後にコピー
?
関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート