首頁 >php框架 >Swoole >如何使用Hyperf框架進行檔案下載

如何使用Hyperf框架進行檔案下載

WBOY
WBOY原創
2023-10-21 08:23:141692瀏覽

如何使用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')
            ->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時,將會執行DownloadControllerindex方法。

四、啟動伺服器
啟動Hyperf伺服器,以監聽HTTP請求。在終端機中進入Hyperf專案根目錄,執行以下指令:

php bin/hyperf.php start

伺服器啟動後,就可以透過存取http://localhost:9501/download來進行檔案下載了。

結論:
本文介紹如何使用Hyperf框架進行檔案下載,包括建立下載控制器、設定路由和啟動伺服器。透過本文的範例程式碼,你可以輕鬆地在Hyperf專案中實現檔案下載功能。希望本文對你有幫助!

以上是如何使用Hyperf框架進行檔案下載的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn