如何使用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') ->header('Content-Disposition', 'attachment; filename=' . $filename) ->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專案中實現檔案下載功能。希望本文對你有幫助!
以上是如何使用Hyperf框架進行檔案下載的詳細內容。更多資訊請關注PHP中文網其他相關文章!