次のような PHP スクリプトが必要です。
- content-typeヘッダーを正しく設定します(ユーザーがダウンロードしている内容に応じて)
- content-lengthヘッダーを正しく設定する(ファイルサイズに応じて)
- 読み込み用にファイルをオープンします (fopen を使うことができます)。
- ファイルを読み込んでその内容を出力ストリームに出力する
- 完了
また、 readfile 関数を使用して基本的に同じことを行うこともできます。 PHPのサイトの例を次に示します。
<?php
$file = 'monkey.gif';
if (file_exists($file)) {
header('Content-Description: File Transfer');
header('Content-Type: application/octet-stream');
header('Content-Disposition: attachment; filename='.basename($file));
header('Content-Transfer-Encoding: binary');
header('Expires: 0');
header('Cache-Control: must-revalidate, post-check=0, pre-check=0');
header('Pragma: public');
header('Content-Length: ' . filesize($file));
ob_clean();
flush();
readfile($file);
exit;
}
?>