質問: ### 実現したいこと PHPで「フォームから送信されたディレクトリにあるファイルをダウンロードする」といった処理を つくろうとしていますが、上手くいかないため質問させていただきます。 ### 発生している問題・エラーメッセージ 下記ソースコードを実行しても、 「�PNG IHDR」から始まる謎の大量の文字の羅列が表示されるのみでダウンロードが行われない。 ### 該当のソースコード 前後は省略しています ``` $fs=scandir('../files/'.$_POST['f_id']); for($for_n=2;count($fs)-1>$for_n;$for_n++){ $fpath='../files/'.$_POST['f_id'].'/'.$fs[$for_n]; $fname=$fs[$for_n]; header('Content-Type: application/force-download'); header('Content-disposition: attachment; filename="'.$fname.'"'); readfile($fpath); } ``` ### ソースコード補足 > > '../files/'.$_POST['f_id'] > > > というディレクトリにダウンロードしたいファイルがあり、 scandirでその一覧を取得し forですべてダウンロードさせようとしています。 $for_nが2から始まるのは "$fs" の配列の0個目、1個目に "."及び".."が含まれるためです。 ### その他補足 BASIC認証をかけたページで 自分しかアクセスしませんので、 セキュリティ上の問題は考慮せずとも大丈夫です。
回答: 文字コードをutf-8で記述していたのですが、 Shift-JISに変更し、また その旨をヘッダーに追加するとなぜか上手くいきました。 ご回答、ありがとうございました。