ホームページ  >  記事  >  バックエンド開発  >  PHPファイルをダウンロードするときに中国語のファイル名が発生した場合の対処方法

PHPファイルをダウンロードするときに中国語のファイル名が発生した場合の対処方法

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

php は主に次のコード行を使用してファイルをダウンロードします

header('Content-Type: application/octet-stream'); header('Content-Disposition: attachment; filename="/tmp/abc.pdf"'); header('Content-Length: '.filesize('/tmp/abc.pdf'));header('Content-Transfer-Encoding: binary'); readfile('/tmp/abc.pdf');

ファイル名に中国語の文字が含まれている場合、filesize()、file_exists()、および readfile() は期待どおりの値を返さないことに注意してください。結果はダウンロードされますが、ダウンロードされるファイルのサイズは 0 です。この時点で、上記の関数にファイル パスを渡す前に、パス内の中国語をトランスコードする必要があります。

$filename=iconv('UTF-8','GB2312',$filename);

トランスコード後はすべて正常です

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。