PHP实现文件安全下载_PHP

Jun 01, 2016 pm 12:35 PM
fi file ダウンロード 安全性 成し遂げる 書類

你可能会笑我"下载文件"如此简单都值得说当然并不是想象那么简单。例如你希望客户要填完一份表格才可以下载某一文件你第一个想法一定是用 "Redirect"的方法先检查表格是否已经填写完毕和完整然后就将网址指到该文件这样客户才能下载但如果你想做一个关于"网上购物"的电子商务网站考虑安全问题你不想用户直接复制网址下载该文件笔者建议你使用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-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" 网址的话则源代码会有少许改变程序如下







            $file_name
= "tianhys.exe";

            $file_dir = "http://www.tianhys.org/";

            $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 までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

Video Face Swap

Video Face Swap

完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

Tencent Conference から会議議事録をダウンロードする方法_Tencent Conference から会議議事録をダウンロードする方法 Tencent Conference から会議議事録をダウンロードする方法_Tencent Conference から会議議事録をダウンロードする方法 Apr 02, 2024 pm 03:30 PM

1. まず Tencent Meeting を開き、ホームページの [History Meeting] をクリックします。 2. 会議に参加したら、[クラウド録画]をクリックしてダウンロードします。 3. 最後に、クラウド録画ビデオをダウンロードするには、会議主催者がダウンロード許可を有効にし、録画ファイルを表示する許可を持っている必要があります。

QQ ミュージックを USB フラッシュドライブにダウンロードするにはどうすればよいですか? -QQミュージックをUSBディスクにダウンロードする方法 QQ ミュージックを USB フラッシュドライブにダウンロードするにはどうすればよいですか? -QQミュージックをUSBディスクにダウンロードする方法 Apr 01, 2024 am 10:11 AM

1. QQ Music ソフトウェアを開き、検索バーにお気に入りの曲の名前を入力し、ダウンロード ボタンをクリックします 2. ダウンロードした曲が保存されているフォルダーを開きます。 3. ダウンロードした曲を USB フラッシュ ドライブにコピーするだけです。もちろん、最初に U ディスクを開いてから、「マイ コンピュータ」で U ディスクを開いて貼り付ける必要があります。

Kujiale から CAD 平面図をダウンロードする方法_Kijiale から CAD 平面図をダウンロードする方法 Kujiale から CAD 平面図をダウンロードする方法_Kijiale から CAD 平面図をダウンロードする方法 Apr 02, 2024 pm 01:25 PM

1. 家づくりツールの初回起動時にポップアップウィンドウからインポートする Cloud Designの[設計開始]をクリックし、ツールページに入り、CADインポートを選択します。注: 現在、DWG/DXF 形式のみがサポートされています。DWG は 5MB を超えず、DXF は 10MB を超えません。 2. 間取りツールからインポートする 間取りツールページの[インポート]-[CADのインポート]をクリックします。ステップ 2: インポートした CAD 住宅プランを調整します。CAD にインポートした後、下の図に示すように、生成されていない壁がいくつかあります。住宅プラン インターフェイスの左上隅にある壁描画ツールをクリックして、壁を塗りつぶします。 (図の赤枠の位置) 壁を描画後、左側 ドアと窓のモデルを選択し、装飾する壁までドラッグ 注:閉じていないユニットでは、3D装飾デザインを実行できません。ドアや窓の位置、ドアの開く方向を調整したら、忘れずに各部屋にコマンドを割り当ててください。

Go 言語ファイルの名前変更操作の完全な分析 Go 言語ファイルの名前変更操作の完全な分析 Apr 08, 2024 pm 03:30 PM

os.Rename 関数は Go 言語でファイルの名前を変更するために使用されます。構文は funcRename(oldpath,newpathstring)error です。この関数は、oldpath で指定されたファイルの名前を newpath で指定されたファイルに変更します。例としては、単純な名前変更、ファイルの別のディレクトリへの移動、エラー処理の無視などが挙げられます。名前変更機能はアトミック操作を実行し、2 つのファイルが同じディレクトリにある場合にのみディレクトリ エントリを更新する可能性があります。名前変更はボリューム間またはファイルの使用中に失敗する可能性があります。

C++ での機械学習アルゴリズムの実装: セキュリティに関する考慮事項とベスト プラクティス C++ での機械学習アルゴリズムの実装: セキュリティに関する考慮事項とベスト プラクティス Jun 01, 2024 am 09:26 AM

C++ で機械学習アルゴリズムを実装する場合、データ プライバシー、モデルの改ざん、入力検証などのセキュリティを考慮することが重要です。ベスト プラクティスには、安全なライブラリの採用、権限の最小化、サンドボックスの使用、継続的な監視が含まれます。実際のケースでは、Botan ライブラリを使用して CNN モデルを暗号化および復号化し、安全なトレーニングと予測を確保する方法を示します。

Struts 2 フレームワークのセキュリティ構成と強化 Struts 2 フレームワークのセキュリティ構成と強化 May 31, 2024 pm 10:53 PM

Struts2 アプリケーションを保護するには、次のセキュリティ構成を使用できます。 未使用の機能を無効にする コンテンツ タイプ チェックを有効にする 入力を検証する セキュリティ トークンを有効にする CSRF 攻撃を防ぐ RBAC を使用してロールベースのアクセスを制限する

PHP マイクロフレームワーク: Slim と Phalcon のセキュリティに関する議論 PHP マイクロフレームワーク: Slim と Phalcon のセキュリティに関する議論 Jun 04, 2024 am 09:28 AM

PHP マイクロフレームワークにおける Slim と Phalcon のセキュリティ比較では、Phalcon には CSRF および XSS 保護、フォーム検証などのセキュリティ機能が組み込まれていますが、Slim にはすぐに使用できるセキュリティ機能がなく、手動で実装する必要があります。セキュリティ対策。セキュリティ クリティカルなアプリケーションの場合、Phalcon はより包括的な保護を提供するため、より良い選択肢となります。

Spring Boot フレームワークのセキュリティを強化する方法 Spring Boot フレームワークのセキュリティを強化する方法 Jun 01, 2024 am 09:29 AM

SpringBoot フレームワークのセキュリティを強化する方法 ユーザー データを保護し、攻撃を防ぐには、SpringBoot アプリケーションのセキュリティを強化することが重要です。 SpringBoot のセキュリティを強化するためのいくつかの重要な手順を次に示します。 1. HTTPS を有効にする HTTPS を使用してサーバーとクライアントの間に安全な接続を確立し、情報の盗聴や改ざんを防ぎます。 SpringBoot では、application.properties で次の設定を行うことで HTTPS を有効にできます:server.ssl.key-store=path/to/keystore.jksserver.ssl.k

See all articles