如何使用Hyperf框架進行文件下載

如何使用Hyperf框架進行文件下載

如何使用Hyperf框架進行文件下載

引言:
在使用Hyperf框架開發Web應用程序時,文件下載是一個常見的需求。本文將介紹如何使用Hyperf框架進行文件下載,包括具體的代碼示例。

一、準備工作
在開始之前,確保你已經安裝好了Hyperf框架并成功創建了一個Hyperf應用程序。

二、創建文件下載控制器
首先,我們需要創建一個控制器來處理文件下載的請求。打開終端,進入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')             -&gt;header('Content-Disposition', 'attachment; filename=' . $filename)             -&gt;stream(new SwooleStream(file_get_contents($file)));     } }

這里我們使用response()函數創建一個響應實例,通過header()方法設置響應頭,stream()方法用于發送文件內容。你需要將$file變量替換為實際的文件路徑,將$filename變量替換為實際的文件名。

三、配置路由
接下來,我們需要配置一個路由來訪問下載控制器。打開 config/routes.php 文件,添加如下代碼:

<?php //... use AppControllerDownloadController; //... Router::get('/download', [DownloadController::class, 'index']); //...

這樣就配置好了一個GET請求的路由,當訪問/download時,將會執行DownloadController的index方法。

四、啟動服務器
啟動Hyperf服務器,以監聽HTTP請求。在終端中進入Hyperf項目根目錄,執行以下命令:

php bin/hyperf.php start

服務器啟動后,就可以通過訪問http://localhost:9501/download來進行文件下載了。

結論:
本文介紹了如何使用Hyperf框架進行文件下載,包括創建下載控制器、配置路由和啟動服務器。通過本文的示例代碼,你可以輕松地在Hyperf項目中實現文件下載功能。希望本文對你有所幫助!

? 版權聲明
THE END
喜歡就支持一下吧
點贊6 分享