Hyperf フレームワークを使用してファイルをダウンロードする方法
はじめに:
Hyperf フレームワークを使用して Web アプリケーションを開発する場合、ファイルのダウンロードは一般的な要件です。この記事では、Hyperf フレームワークを使用してファイルをダウンロードする方法を、具体的なコード例を含めて紹介します。
1. 準備
始める前に、Hyperf フレームワークがインストールされ、Hyperf アプリケーションが正常に作成されていることを確認してください。
2. ファイル ダウンロード コントローラーの作成
まず、ファイル ダウンロード リクエストを処理するコントローラーを作成する必要があります。ターミナルを開き、Hyperf プロジェクトのルート ディレクトリに入り、次のコマンドを実行してダウンロード コントローラーを生成します。
php bin/hyperf.php generate:controller DownloadController
生成されたコントローラー ファイルは、app/Controller
ディレクトリにあります。ファイルを開いて変更します。index()
メソッドは次のとおりです:
<?php declare(strict_types=1); namespace AppController; use HyperfHttpServerAnnotationController; use HyperfHttpServerAnnotationRequestMapping; use HyperfHttpMessageStreamSwooleStream; use HyperfUtilsCodecEncode; use HyperfUtilsCodecJson; use HyperfUtilsCodecXml; /** * @Controller */ class DownloadController { /** * 下载文件 * @RequestMapping(path="/download", methods="get") */ public function index() { // 文件路径 $file = '/path/to/file'; // 替换成实际文件路径 // 文件名 $filename = 'filename.ext'; // 替换成实际文件名 // 设置响应头 return response() ->header('Content-Type', 'application/octet-stream') ->header('Content-Disposition', 'attachment; filename=' . $filename) ->stream(new SwooleStream(file_get_contents($file))); } }
ここでは、response()
関数を使用して応答インスタンスを作成し、設定しますheader()
メソッド経由の応答 ヘッダー、stream()
メソッドは、ファイルのコンテンツを送信するために使用されます。 $file
変数を実際のファイル パスに置き換え、$filename
変数を実際のファイル名に置き換える必要があります。
3. ルーティングの構成
次に、ダウンロード コントローラーにアクセスするためのルートを構成する必要があります。 config/routes.php
ファイルを開き、次のコードを追加します:
<?php //... use AppControllerDownloadController; //... Router::get('/download', [DownloadController::class, 'index']); //...
これにより、GET リクエスト ルートが構成されます。/download
にアクセスすると、 DownloadController
の index
メソッド。
4. サーバーの起動
Hyperf サーバーを起動して HTTP リクエストをリッスンします。ターミナルで Hyperf プロジェクトのルート ディレクトリを入力し、次のコマンドを実行します。
php bin/hyperf.php start
サーバーが起動したら、http://localhost:9501/download# にアクセスしてファイルをダウンロードできます。 ##。
この記事では、ダウンロード コントローラーの作成、ルーティングの構成、サーバーの起動など、ファイルのダウンロードに Hyperf フレームワークを使用する方法を紹介します。この記事のサンプル コードを使用すると、Hyperf プロジェクトにファイル ダウンロード機能を簡単に実装できます。この記事がお役に立てば幸いです!
以上がファイルのダウンロードに Hyperf フレームワークを使用する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。