overtrue/laravel-uploader

Laravel 的上传组件。

资助包维护!
overtrue

3.2.0 2024-03-13 05:09 UTC

README

🌴 Laravel 的上传组件。

Sponsor me

安装

  1. 安装包

    $ composer require overtrue/laravel-uploader -vvv

    并使用以下命令发布资源

    $ php artisan vendor:publish --provider=Overtrue\\LaravelUploader\\UploadServiceProvider
  2. 路由

    您可以在 routes/web.php 或其他路由文件中注册路由

    \LaravelUploader::routes();
    
    // custom
    \LaravelUploader::routes([
       'as' => 'files.upload', 
       'middleware' => ['auth'],
       //...
    ]); 

用法

自定义控制器

如果您想处理文件上传,可以像这样简单地做

<?php

namespace App\Http\Controllers;

use Illuminate\Http\Request;
use Illuminate\Routing\Controller as BaseController;
use Overtrue\LaravelUploader\StrategyResolver;

class MyUploadController extends BaseController
{
    public function upload(Request $request)
    {
        return StrategyResolver::resolveFromRequest($request, $request->get('strategy', 'default'))->upload();
    }
}

自定义响应

如果您想更新响应,可以从返回值对象中获取关键信息并返回一个新的响应

    public function upload(Request $request)
    {
        $response = StrategyResolver::resolveFromRequest($request, $request->get('strategy', 'default'))->upload();
        
        return response()->json([
            'status' => 'success',
            'url' => $response->url,
            'origin_name' => $response->originalName,
            //...
        ]);
    }

您可以获取所有这些公共属性

int $size;
string $path;
string $mime;
string $url;
string $relativeUrl;
string $filename;
string $originalName;
\Illuminate\Http\UploadedFile   $file;
\Overtrue\LaravelUploader\Strategy $strategy;

推荐客户端

❤️ 赞助我

Sponsor me

如果您喜欢我的项目并想支持它,点击这里 ❤️

由 JetBrains 支持的项目

非常感谢 JetBrains 善意提供许可证,使我能够为这个和其他开源项目工作。

PHP 扩展包开发

想知道如何从零开始构建 PHP 扩展包吗?

请关注我的实战课程,我会在该课程中分享一些扩展开发经验 —— 《PHP 扩展包实战教程 - 从入门到发布》

许可协议

MIT