ホームページ  >  記事  >  バックエンド開発  >  PHP は安全なファイルのダウンロードを実装します_PHP チュートリアル

PHP は安全なファイルのダウンロードを実装します_PHP チュートリアル

WBOY
WBOYオリジナル
2016-07-21 16:09:56699ブラウズ

「ファイルをダウンロードする」ということがそんなに簡単だと言う価値があるでしょうか?もちろん、それは想像されているほど単純ではありません。たとえば、顧客が特定のファイルをダウンロードする前にフォームに記入してもらいたい場合、最初に「リダイレクト」メソッドを使用する必要があります。まずフォームが記入され完了したかどうかを確認し、次に URL を指定する必要があります。をファイルに追加して、顧客がダウンロードできるようにします。ただし、「オンライン ショッピング」に関する電子商取引 Web サイトを作成し、セキュリティの問題を考慮する場合は、ユーザーが URL を直接コピーしてファイルをダウンロードすることは望ましくありません。著者は、PHP を使用して実際のファイルを直接読み取り、それをダウンロードする方法をお勧めします。プログラムは次のとおりです:

$file_name = "info_check.exe";
$file_dir = "/public/www/download/";
if (!file_exists($file_dir . $file_name)) { //ファイルが存在します
echo "ファイルが見つかりません";
終了;
} else {
$file = fopen($file_dir . $file_name,"r") // ファイルを開きます
// ファイルタグを入力します
Header(" Content-type: application /octet-stream");
Header("Accept-Range: bytes");
Header("Accept-Length: ".filesize($file_dir . $file_name));
Header("Content-処理: filename =" . $file_name);
// 出力ファイルの内容
echo fread($file,filesize($file_dir . $file_name));
fclose($file);
exit;}

そして ifファイルパスが「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 を使用してファイルを直接出力できます。​

www.bkjia.comtru​​ehttp://www.bkjia.com/PHPjc/314359.html技術記事ファイルのダウンロードがこんなに簡単だなんて、きっと笑われるでしょう。もちろん、それは想像されているほど単純ではありません。たとえば、顧客が特定のファイルをダウンロードする前にフォームに記入してもらいたい場合、最初に考えるべきことは...
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。