ホームページ >php教程 >php手册 >PHP は安全なファイルのダウンロードを実装します

PHP は安全なファイルのダウンロードを実装します

WBOY
WBOYオリジナル
2016-06-13 12:44:551386ブラウズ

「ファイルをダウンロードする」ということがそんなに簡単だと言う価値があるでしょうか?もちろん、それは想像されているほど単純ではありません。たとえば、顧客が特定のファイルをダウンロードする前にフォームに入力してもらいたい場合、最初に「リダイレクト」メソッドを使用する必要があります。まずフォームが入力され完了したかどうかを確認し、次に 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 を使用してファイルを直接出力できます。​

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
前の記事:PHPの暗号化関数次の記事:PHPの暗号化関数