PHPackages                             putyy/laravel-admin-webupload - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [File &amp; Storage](/categories/file-storage)
4. /
5. putyy/laravel-admin-webupload

ActiveLibrary[File &amp; Storage](/categories/file-storage)

putyy/laravel-admin-webupload
=============================

laravel-admin 前端上传文件功能封装......

1.0.3(4y ago)210MITJavaScriptPHP &gt;=7.0.0

Since Mar 24Pushed 4y ago1 watchersCompare

[ Source](https://github.com/putyy/laravel-admin-webupload)[ Packagist](https://packagist.org/packages/putyy/laravel-admin-webupload)[ Docs](https://github.com/putyy/laravel-admin-webupload)[ RSS](/packages/putyy-laravel-admin-webupload/feed)WikiDiscussions main Synced 2d ago

READMEChangelog (3)Dependencies (2)Versions (4)Used By (0)

laravel-admin-webupload
-----------------------

[](#laravel-admin-webupload)

laravel-admin 前端直传封装

### 安装

[](#安装)

```
composer require putyy/laravel-admin-webupload

php artisan vendor:publish --provider="Pt\LaravelAdminWebUpload\LaravelAdminWebUploadServiceProvider"
```

### 使用

[](#使用)

#### 这里也可以自行实现 需返回必要的json结果

[](#这里也可以自行实现-需返回必要的json结果)

> 新建控制器如: UploadController, 继承\\Pt\\LaravelAdminWebUpload\\Http\\Controllers\\WebUploadController 实现对应的方法
>
> 可以参考 tests/TestUploadController.php 实现
>
> 添加如下路由

```
Route::group([
    'prefix'        => config('admin.route.prefix'),
    'namespace'     => config('admin.route.namespace'),
    'as'            => config('admin.route.prefix') . '.',
], function (Router $router) {
    // 获取上传场景
    $router->get('upload-scene', [\App\Admin\Controllers\UploadController::class, 'scene']);
    // 自定义文件上传服务
    $router->post('upload-file', [\App\Admin\Controllers\UploadController::class, 'upload']);
});
```

> 表单使用
>
> $form新增了四个字段类型: imageKit、audioKit、videoKit、fileKit、rewriteSubmitKit
>
> 除了rewriteSubmitKit其他的可以指定上传属性(data-max、data-scene、data-other)以及上传到指定平台(toQiniu、toAliyun、toLocal)
>
> > data-max: 限制上传文件的大小
> >
> > data-scene、data-other、data-platform会传到获取上传信息的接口
>
> rewriteSubmitKit 可指定变量: scene\_url(上传所需信息获取地址 默认: /admin/upload-scene)

### 举例

[](#举例)

> 单文件:

```
protected function form()
{
    ...
    // 上传图片到七牛云
    $form->imageKit('img_url', '分类图标')
        ->attribute(['data-scene' => 'shop_date', 'data-other' => 'img'])
        ->toQiniu()
        ->customFormat(function ($value) {
            // 获取图片显示地址
            return $value;
        });

    // 上传音频到阿里云
    $form->audioKit('audio_src', '分类图标')
        ->attribute(['data-scene' => 'shop_date', 'data-other' => 'audio'])
        ->toAliyun()
        ->customFormat(function ($value) {
            // 获取音频播放地址
            return $value;
        });

    // 上传视频到本地
    $form->videoKit('video_src', '分类图标')
        ->attribute(['data-scene' => 'shop_date', 'data-other' => 'video'])
        ->toLocal()
        ->customFormat(function ($value) {
            // 获取音频播放地址
            return $value;
        });

    // 上传文件到本地
    $form->fileKit('table_file', '分类图标')
        ->attribute(['data-scene' => 'shop_date', 'data-other' => 'file'])
        ->toLocal()
        ->customFormat(function ($value) {
            // 获取音频播放地址
            return $value;
        });
    ...
    $form->saving(function (Form $form) {
        // todo 存入数据库时去掉全地址等操作
        // 比如:
        // $form->img_url = "去掉http://xxx.com/ 保留 upload/ss/ss/ss.png";
    });
    // 这一步必须，用于拦截原有提交以便直传文件到对应的服务
    // 变量: scene_url
    $form->rewriteSubmitKit()->addVariables(['scene_url' => '/admin/upload-scene']);
    return $form;
}
```

> 多文件(增加了kitFiles方法):

```
protected function form()
{
    ...
    // 上传图片到七牛云
    if (request()->isMethod('GET')) {
        $id = request()->route('xxx_model');
        $list = XxxModel::query()->where('goods_id', $id)->get()->toArray();
        $files = [];
        foreach ($list as   $value){
            $files[] = [
                'other'=>$value['id'],
                'src' => getImgUrl($value['img_url']),
            ];
        }
        // 主要在 kitFiles 这方法定义的一些变量 以下两个为必须 其他的可以看 \Pt\LaravelAdminWebUpload\Form\BaseKit::kitFiles
        $form->imageKit('goods_banner', '轮播图')->kitFiles([
            'files' => $files,
        ])
        ->attribute(['data-scene' => SceneConst::GOODS_COVER])
        ->toQiniu();
    }
    ...
    $form->saving(function (Form $form) {
        // todo 存入数据库时去掉全地址等操作
        // 比如:
        // $form->img_url = "去掉http://xxx.com/ 保留 upload/ss/ss/ss.png";
    });

     //保存后回调 用于单独处理多文件上传保存
    $form->saved(function (Form $form) {
        //...
        $goods_banner = request()->post('goods_banner');
        $goods_banner = explode('&', $goods_banner);
        $add = [];
        foreach ($goods_banner as $sort => $value) {
            $add[] = [
                'goods_id' => $form->model()->id,
                'img_url' => getThatSavePath(explode('#', $value)[0]),
                'sort' => $sort + 1
            ];
        }
        XxxModel::query()->where('goods_id', $form->model()->id)->delete();
        XxxModel::query()->insert($add);
    });

    // 这一步必须，用于拦截原有提交以便直传文件到对应的服务
    // 变量: scene_url
    $form->rewriteSubmitKit();
    return $form;
}
```

### PS: 更多用法请看源码

[](#ps-更多用法请看源码)

###  Health Score

22

—

LowBetter than 22% of packages

Maintenance20

Infrequent updates — may be unmaintained

Popularity8

Limited adoption so far

Community7

Small or concentrated contributor base

Maturity46

Maturing project, gaining track record

 Bus Factor1

Top contributor holds 100% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Every ~7 days

Total

3

Last Release

1496d ago

### Community

Maintainers

![](https://www.gravatar.com/avatar/e2709edce2efeb0a1f367be0001be4a2ead831c5b9ecb41e78caf30a680af5e2?d=identicon)[putyy](/maintainers/putyy)

---

Top Contributors

[![putyy](https://avatars.githubusercontent.com/u/31536789?v=4)](https://github.com/putyy "putyy (6 commits)")

---

Tags

extensionlaravel-admin

###  Code Quality

TestsPHPUnit

### Embed Badge

![Health badge](/badges/putyy-laravel-admin-webupload/health.svg)

```
[![Health](https://phpackages.com/badges/putyy-laravel-admin-webupload/health.svg)](https://phpackages.com/packages/putyy-laravel-admin-webupload)
```

###  Alternatives

[dianwoung/large-file-upload

An extension of laravel-admin for uploading large files

7745.7k2](/packages/dianwoung-large-file-upload)[catlane/chunk-file-upload

文件上传小扩展，可支持大文件分块分片上传到七牛云or本地，优化您上传大文件的苦恼

284.9k](/packages/catlane-chunk-file-upload)[jxlwqq/file-manager

file manager for laravel-admin

1215.6k](/packages/jxlwqq-file-manager)[laravel-admin-ext/file-browser

A file browser for laravel-admin

153.0k](/packages/laravel-admin-ext-file-browser)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
