Rumah  >  Artikel  >  rangka kerja php  >  Cara menggunakan rangka kerja Hyperf untuk muat naik fail

Cara menggunakan rangka kerja Hyperf untuk muat naik fail

WBOY
WBOYasal
2023-10-21 09:06:281036semak imbas

Cara menggunakan rangka kerja Hyperf untuk muat naik fail

Cara menggunakan rangka kerja Hyperf untuk muat naik fail, contoh kod khusus diperlukan

Pengenalan:
Dengan pembangunan web aplikasi, fail Fungsi muat naik telah menjadi bahagian penting dalam banyak projek. Hyperf ialah rangka kerja mikroperkhidmatan PHP berprestasi tinggi yang menyediakan set fungsi yang kaya, termasuk muat naik fail. Artikel ini akan memperkenalkan cara menggunakan rangka kerja Hyperf untuk muat naik fail dan memberikan contoh kod khusus.

1. Pasang rangka kerja Hyperf:
Mula-mula, anda perlu memasang rangka kerja Hyperf. Anda boleh memasangnya melalui arahan komposer:

composer create-project hyperf/hyperf-skeleton

Selepas pemasangan selesai, masukkan direktori projek dan mulakan Hyperf:

cd hyperf-skeleton
php bin/hyperf.php start

2. Tulis antara muka muat naik fail: # 🎜🎜#Dalam rangka kerja Hyperf , kami boleh mengendalikan permintaan dengan menulis Pengawal. Cipta fail UploadController.php baharu dan tambah kod berikut:

<?php

declare(strict_types=1);

namespace AppController;

use HyperfHttpServerAnnotationAutoController;
use HyperfHttpServerContractRequestInterface;
use HyperfHttpServerContractResponseInterface;
use HyperfHttpServerHttpServer;
use HyperfHttpServerRouterDispatched;
use HyperfHttpServerRouterHandler;
use HyperfHttpServerRouterRouteCollector;
use HyperfHttpServerRouterRouter;
use HyperfUtilsCodecJson;
use HyperfUtilsContext;
use PsrHttpMessageResponseInterface as Psr7ResponseInterface;

/**
 * @AutoController()
 */
class UploadController extends AbstractController
{
    /**
     * 文件上传
     */
    public function upload(RequestInterface $request): Psr7ResponseInterface
    {
        $file = $request->file('file');  // 获取上传的文件
        $uploadedPath = $file->getPath();  // 获取上传的文件的临时路径
        $filename = $file->getClientFilename();  // 获取上传的文件名
        
        // 处理上传的文件,例如保存到指定目录
        $targetPath = BASE_PATH . '/public/uploads/' . $filename;
        $file->moveTo($targetPath);
        
        return $this->success('文件上传成功');
    }
}

3. Konfigurasikan penghalaan:

Dalam rangka kerja Hyperf, kita perlu mengkonfigurasi penghalaan untuk memetakan permintaan kepada Pengawal yang sepadan untuk diproses . Buka fail config/routes.php dan tambahkan kod berikut:

<?php

use HyperfHttpServerRouterRouter;

Router::addRoute(
    ['POST'],
    '/upload',
    'AppControllerUploadController@upload'
);

Keempat, panggil antara muka muat naik fail:

Di halaman hujung hadapan, anda boleh memuat naik fail melalui borang. Konfigurasikan tindakan borang kepada /upload dan tetapkan enctype kepada multipart/form-data. Berikut ialah contoh HTML mudah:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>文件上传示例</title>
</head>
<body>
    <form action="/upload" method="POST" enctype="multipart/form-data">
        <input type="file" name="file">
        <input type="submit" value="上传">
    </form>
</body>
</html>
action 配置为 /upload,将 enctype 设置为 multipart/form-data。以下是一个简单的HTML示例:

rrreee

五、测试文件上传:
启动Hyperf服务器后,打开浏览器,在地址栏输入 http://localhost:9501 5. Uji muat naik fail:

Selepas memulakan pelayan Hyperf, buka pelayar dan masukkan http://localhost:9501 dalam bar alamat , masukkan halaman muat naik fail. Pilih fail dan klik butang muat naik untuk melengkapkan muat naik fail.


Kesimpulan:

Melalui fungsi muat naik fail yang disediakan oleh rangka kerja Hyperf, kita boleh merealisasikan keperluan muat naik fail dengan mudah. Artikel ini memperkenalkan cara menggunakan rangka kerja Hyperf untuk muat naik fail dan memberikan contoh kod khusus. Saya harap ia dapat membantu anda melaksanakan fungsi muat naik fail dalam projek Hyperf anda. #🎜🎜#

Atas ialah kandungan terperinci Cara menggunakan rangka kerja Hyperf untuk muat naik fail. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn