質問: str_replace( $beforeName, $fname, $fpath ); header('Content-Type: application/force-download'); header('Content-Length: '.filesize($fpath)); header('Content-disposition: attachment; filename="'.$fname.'"'); readfile($fpath); ``` ### 試したこと 以下のファイル名でアップロードしたファイルをダウンロードした時、異常ファイルになった例です。 ファイル名:「ソース.pdf」「おたふくソース.pdf」「ソースの移動.xlsx」 ダウンロード時も正常なファイル名 「アース.pdf」「アースの.pdf」「アースの移動.pdf」「セイバー.pdf」「オリバー222」 ### 補足情報(言語/FW/ツール等のバージョンなど) 環境:windows(7/8/10),xampp(5.6.12),php(5.6.12),mysql(5.6.26),apache(2.4.16),cakephp(2.5) ブラウザ:firefox,chrome,IE11
回答: 「ソース」をShift_JISにすると、「ソ」のところに \ が含まれるので、それの影響だと思います。 そのあたりを考慮して、プログラムを書くといいかと。