「ファイルをダウンロードする」ということがそんなに簡単だと言う価値があるでしょうか?もちろん、それは想像されているほど単純ではありません。たとえば、顧客が特定のファイルをダウンロードする前にフォームに入力してもらいたい場合、最初に「リダイレクト」メソッドを使用する必要があります。まずフォームが入力され完了したかどうかを確認し、次に URL を指定する必要があります。をファイルに追加して、顧客がダウンロードできるようにします。ただし、「オンライン ショッピング」に関する電子商取引 Web サイトを作成し、セキュリティの問題を考慮する場合は、ユーザーが URL を直接コピーしてファイルをダウンロードすることは望ましくありません。著者は、PHP を使用して実際のファイルを直接読み取り、それをダウンロードする方法をお勧めします。プログラムは次のとおりです。
$file_name = "info_check.exe";
$file_dir = "/public/www/download/";
if (!file_exists($file_dir . $file_name) )) { //ファイルが存在するかどうかを確認します
echo "ファイルが見つかりません";
exit;
} else {
$file = fopen($file_dir . $file_name,"r"); // ファイルを開く
// ファイルタグを入力
Header("Content-type: application/octet-stream");
Header("Accept-Ranges: bytes");
Header(" Accept-Length" : ".filesize($file_dir . $file_name));
Header("Content-Disposition:attachment; filename=" . $file_name);
// 出力ファイルの内容
echo fread ($file, filesize($file_dir . $file_name));
fclose($file);
exit;}
ファイル パスが "http" または "ftp" URL の場合、ソース コードにはいくつかの変更があります。手順は次のとおりです。
$file_name = "info_check.exe";
$file_dir = "http://www.easycn.net/" ;
$file = @ fopen( $file_dir . $file_name,"r");
if (!$file) {
echo "ファイルが見つかりません";
} else {
Header("Content-type: application/ octet-stream");
Header("Content-Disposition:attachment; filename=" . $file_name);
while (!feof ($file)) {
echo fread($file,50000) ;
}
fclose ($file);
}
このように、PHP を使用してファイルを直接出力できます。