安全なダウンロード
??????? 笑われるかもしれませんが、「ファイルをダウンロードする」ということはとても簡単なことですが、言う価値はありますか?もちろん、それは想像されているほど単純ではありません。たとえば、顧客が特定のファイルをダウンロードする前にフォームに記入してもらいたい場合、最初に「リダイレクト」メソッドを使用する必要があります。まずフォームが記入され完了したかどうかを確認し、次に URL を指定する必要があります。をファイルに追加して、顧客がダウンロードできるようにします。ただし、「オンライン ショッピング」に関する電子商取引 Web サイトを作成し、セキュリティの問題を考慮する場合は、ユーザーが URL を直接コピーしてファイルをダウンロードすることは望ましくありません。著者は、PHP を使用して実際のファイルを直接読み取り、それをダウンロードする方法をお勧めします。プログラムは次のとおりです。
?????????$file_name = "tianhys.exee";
?????????$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-Range: バイト");
????????? 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」の場合、ソースコードは次のようになります。 ???$file_name = "tianhys.exe";
?????????$file_dir = "http://www.tianhys.org/";
?????????if (!$file ) {
????????? echo "ファイルが見つかりません"; ?????????? } else {
????????? ヘッダー ("Content-type: application/octet-stream");
?????????? ? Header("Content-Disposition:attachment; filename=" .$file_name);
????????? while (!feof ($file)) {
??? ?????? エコー fread($file,50000);
???????????? }
?????????? fclose ($file);
??? ??????? }