ホームページ > php教程 > php手册 > (安全なダウンロード) PHPが実際のファイルを直接読み込んでダウンロードします。

(安全なダウンロード) PHPが実際のファイルを直接読み込んでダウンロードします。

WBOY
リリース: 2016-06-21 09:06:09
オリジナル
965 人が閲覧しました

安全なダウンロード

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

?????????$file = @ fopen($file_dir . $file_name,"r");

?????????if (!$file ) {

????????? echo "ファイルが見つかりません";

?????????? } else {
????????? ヘッダー ("Content-type: application/octet-stream");
?????????? ? Header("Content-Disposition:attachment; filename=" .$file_name);
????????? while (!feof ($file)) {
??? ?????? エコー fread($file,50000);
???????????? }
?????????? fclose ($file);
??? ??????? }





関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のおすすめ
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート