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

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

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);
ログイン後にコピー

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

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