ワリと需要のある処理だと思いますが、改めてググってみるとあまりマネして欲しくないコードが散見されたため、この記事を書いてみました。 検索結果上位のページのコードをコピペで使ってる人 application/force-download は、いわゆる「バッドノウハウ」だという事を知らない人 readfile() の正しい使い方を知らない人(特にファイルサイズの大きなファイルに対して使う場合) などに参考にして頂ければ幸いです。 コード function download($pPath, $pMimeType = null) { //-- ファイルが読めない時はエラー(もっときちんと書いた方が良いが今回は割愛) if (!is_readable($pPath)) { die($pPath); } //-- Content-Typeとして送信するMIMEタイプ(第2引数を渡さない場合は自動判定)