PHPackages                             gitfei1231/webman-storage - 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. gitfei1231/webman-storage

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

gitfei1231/webman-storage
=========================

webman storage plugin

0.0.7(8mo ago)230MITPHPPHP &gt;=7.2

Since Mar 29Pushed 8mo agoCompare

[ Source](https://github.com/gitfei1231/webman-storage)[ Packagist](https://packagist.org/packages/gitfei1231/webman-storage)[ RSS](/packages/gitfei1231-webman-storage/feed)WikiDiscussions main Synced yesterday

READMEChangelog (7)Dependencies (9)Versions (8)Used By (0)

webman 简单易用多文件上传插件
==================

[](#webman-简单易用多文件上传插件)

[![Latest Stable Version](https://camo.githubusercontent.com/60a3199bd18a590621b11a9821f9a5a0480b547724c5d13a1fc5e38178c8851b/687474703a2f2f706f7365722e707567782e6f72672f74696e7977616e2f73746f726167652f76)](https://packagist.org/packages/tinywan/storage) [![Total Downloads](https://camo.githubusercontent.com/6db8441b5810f5be63f028d70535b1560cda899055f70d50e929623d7f82370f/687474703a2f2f706f7365722e707567782e6f72672f74696e7977616e2f73746f726167652f646f776e6c6f616473)](https://packagist.org/packages/tinywan/storage)[![Daily Downloads](https://camo.githubusercontent.com/3b3d38b072e56ccbfa2d75dfbfd73e63b3ee37ba821aa0add60772a8ece79c45/687474703a2f2f706f7365722e707567782e6f72672f74696e7977616e2f73746f726167652f642f6461696c79)](https://packagist.org/packages/tinywan/storage)[![Latest Unstable Version](https://camo.githubusercontent.com/a4c307f606bf25108fdf657150ef0bbe85ac26e8716baff118cdc1f0ea595b01/687474703a2f2f706f7365722e707567782e6f72672f74696e7977616e2f73746f726167652f762f756e737461626c65)](https://packagist.org/packages/tinywan/storage)[![License](https://camo.githubusercontent.com/94a922447bbfc71bc06db5f49b115345a8df4cf8b78c4ab4f8902f49185f0fc9/687474703a2f2f706f7365722e707567782e6f72672f74696e7977616e2f73746f726167652f6c6963656e7365)](https://packagist.org/packages/tinywan/storage)[![PHP Version Require](https://camo.githubusercontent.com/ebbca74c4261cd8a04bb291366c79ce6afc70a30c71169e8dd8af1a10a784d80/687474703a2f2f706f7365722e707567782e6f72672f74696e7977616e2f73746f726167652f726571756972652f706870)](https://packagist.org/packages/tinywan/storage)![last-commit](https://camo.githubusercontent.com/0b7e033bec1e439af7f3fae0a250119c48561b2616670477989f3f14c2a777d6/68747470733a2f2f696d672e736869656c64732e696f2f6769746875622f6c6173742d636f6d6d69742f74696e7977616e2f73746f726167652f6d61696e)![storage tag](https://camo.githubusercontent.com/07d5982c92d55ff8b723fc3489a4c974a430f07cf9ef4748f32ff083fd33d38d/68747470733a2f2f696d672e736869656c64732e696f2f6769746875622f762f7461672f74696e7977616e2f73746f726167653f636f6c6f723d666636396234)

特性
--

[](#特性)

#### 🍏 本地对象存储

[](#-本地对象存储)

- ✅ 本地多文件上传

#### 🍓 阿里云对象存储

[](#-阿里云对象存储)

- ✅ 本地多文件上传
- ✅ `Base64`图片文件上传
- ✅ 上传服务端文件

#### 🍋 腾讯云对象存储

[](#-腾讯云对象存储)

- ✅ 本地多文件上传
- ✅ `Base64`图片文件上传
- ✅ 上传服务端文件

#### 🍇 七牛云对象存储

[](#-七牛云对象存储)

- ✅ 本地多文件上传
- ✅ `Base64`图片文件上传
- ✅ 上传服务端文件

#### 🍇 AWS S3 对象存储

[](#-aws-s3-对象存储)

- ✅ 本地多文件上传
- ✅ `Base64`图片文件上传
- ✅ 上传服务端文件

安装
--

[](#安装)

```
composer require gitfei1231/webman-storage
```

基本用法
----

[](#基本用法)

```
Tinywan\Storage\Storage::config(); // 初始化。 默认为本地存储：local，阿里云：oss，腾讯云：cos，七牛：qiniu，亚马逊aws：aws
$res = Tinywan\Storage\Storage::uploadFile();
var_dump(json_encode($res));
```

### 上传成功信息

[](#上传成功信息)

```
[
    {
        "key": "webman",
        "origin_name": "常用编程软件和工具.xlsx",
        "save_name": "03414c9bdaf7a38148742c87b96b8167.xlsx",
        "save_path": "runtime/storage/03414c9bdaf7a38148742c87b96b8167.xlsx",
        "save_path": "/var/www/webman-admin/public/storage/03414c9bdaf7a38148742c87b96b8167.xlsx",
        "url": "/storage/fd2d472da56c71a6da0a5251f5e1b586.png",
        "uniqid ": "03414c9bdaf7a38148742c87b96b8167",
        "size": 15050,
        "mime_type": "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet",
        "extension": "xlsx"
    }
    ...
]
```

> 失败，抛出`StorageAdapterException`异常

### 成功响应字段

[](#成功响应字段)

字段描述示例值key上传文件keywebmanorigin\_name原始文件名常用编程软件和工具.xlsxsave\_name保存文件名03414c9bdaf7a38148742c87b96b8167.xlsxsave\_path文件保存路径（相对）/var/www/webman-admin/runtime/storage/03414c9bdaf7a38148742c87b96b8167.xlsxurlurl访问路径/storage/03414c9bdaf7a38148742c87b96b8167.xlsxunique\_iduniqid03414c9bdaf7a38148742c87b96b8167size文件大小15050（字节）mime\_type文件类型application/vnd.openxmlformats-officedocument.spreadsheetml.sheetextension文件扩展名xlsx上传规则
----

[](#上传规则)

默认情况下是上传到本地服务器，会在`runtime/storage`目录下面生成以当前日期为子目录，以文件流的sha1编码为文件名的文件，例如上面生成的文件名可能是：

```
runtime/storage/fd2d472da56c71a6da0a5251f5e1b586.png

```

如果你希望上传的文件是可以直接访问或者下载的话，可以使用`public`存储方式。

你可以在`config/plugin/tinywan/storage/pp.php`配置文件中配置上传根目录，例如：

```
'local' => [
    'adapter' => \Tinywan\Storage\Adapter\LocalAdapter::class,
    'root' => public_path() . '/storage',
],
```

> 浏览器访问：

上传验证
----

[](#上传验证)

支持使用验证类对上传文件的验证，包括文件大小、文件类型和后缀

字段描述示例值single\_limit单个文件的大小限制，默认200M1024 \* 1024 \* 200total\_limit所有文件的大小限制，默认200M1024 \* 1024 \* 200nums文件数量限制，默认1010include被允许的文件类型列表\['xlsx','pdf'\]exclude不被允许的文件类型列表\['png','jpg'\]支持上传SDK
-------

[](#支持上传sdk)

#### 阿里云对象存储

[](#阿里云对象存储)

```
composer require aliyuncs/oss-sdk-php
```

#### 腾讯云对象存储

[](#腾讯云对象存储)

```
composer require qcloud/cos-sdk-v5
```

#### 七牛云云对象存储

[](#七牛云云对象存储)

```
composer require qiniu/php-sdk
```

#### AWS S3 对象存储

[](#aws-s3-对象存储)

```
composer require aws/aws-sdk-php
```

接下来，你需要在配置文件中设置 AWS S3 的相关参数：

```
// 在 config/plugin/tinywan/storage/pp.php 中新增如下配置
'aws' => [
    'adapter' => \Tinywan\Storage\Adapter\AwsAdapter::class,
    'root' => 'storage' . DIRECTORY_SEPARATOR,
    'accessKeyId' => 'your-aws-access-key',
    'secretAccessKey' => 'your-aws-secret-key',
    'bucket' => 'your-bucket-name',
    'region' => 'us-east-1', // 选择你所使用的 AWS 区域
    'dirname' => function () {
        return date('Ymd');
    },
    'domain' => 'https://your-bucket.s3.amazonaws.com', // S3 Bucket 的访问 URL
    'endpoint' => '', // 可选，若有自定义 endpoint 可在此处配置
    'algo' => 'sha1', // 文件命名算法
],
```

上传Base64图片
----------

[](#上传base64图片)

> **使用场景：** 前端直接截图（头像、Canvas等）一个Base64数据流的图片直接上传到云端

#### 请求参数

[](#请求参数)

```
{
    "extension": "png",
    "base64": "data:image/jpeg;base64,/9j/4AAQSkxxxxxxxxxxxxZJRgABvtyQBIr/MPTPTP/2Q=="
}
```

#### 请求案例（阿里云）

[](#请求案例阿里云)

```
public function upload(Request $request)
{
    Storage::config(Storage::MODE_OSS, false); // 第一个参数为存储方式。第二个参数为是否本地文件（默认是）
    $base64 = $request->post('base64');
    $r = Storage::uploadBase64($base64,'png');
    var_dump($r);
}
```

#### 响应参数

[](#响应参数)

```
{
	"save_path": "storage/20220402213639624851671439e.png",
	"url": "http://webman.oss.tinywan.com/storage/20220402213639624851671439e.png",
	"unique_id": "20220402213639624851671439e",
	"size": 11802,
	"extension": "png"
}
```

上传服务端文件
-------

[](#上传服务端文件)

> **使用场景：** 服务端导出文件需要上传到云端存储，或者零时下载文件存储。

#### 请求案例（阿里云）

[](#请求案例阿里云-1)

```
Storage::config(Storage::MODE_OSS,false);
$localFile = runtime_path() . DIRECTORY_SEPARATOR . 'storage/webman.png';
$res = Storage::uploadServerFile($localFile);
```

#### 响应参数

[](#响应参数-1)

```
{
	"origin_name": "/var/www/webman-admin/runtime/storage/webman.png",
	"save_path": "storage/6edf04d7c26f020cf5e46e6457620220402213414.png",
	"url": "http://webman.oss.tinywan.com/storage/6ed9ffd54d0df57620220402213414.png",
	"unique_id": "6edf04d7c26f020cf5e46e6403213414",
	"size": 3505604,
	"extension": "png"
}
```

Other
-----

[](#other)

### phpstan

[](#phpstan)

```
vendor/bin/phpstan analyse src

vendor/bin/php-cs-fixer fix src

```

###  Health Score

29

—

LowBetter than 57% of packages

Maintenance59

Moderate activity, may be stable

Popularity10

Limited adoption so far

Community6

Small or concentrated contributor base

Maturity35

Early-stage or recently created project

 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 ~155 days

Recently: every ~232 days

Total

7

Last Release

264d ago

### Community

Maintainers

![](https://avatars.githubusercontent.com/u/5179891?v=4)[tangfei](/maintainers/gitfei1231)[@gitfei1231](https://github.com/gitfei1231)

---

Top Contributors

[![gitfei1231](https://avatars.githubusercontent.com/u/5179891?v=4)](https://github.com/gitfei1231 "gitfei1231 (8 commits)")

###  Code Quality

TestsPHPUnit

Static AnalysisPHPStan

Code StylePHP CS Fixer

Type Coverage Yes

### Embed Badge

![Health badge](/badges/gitfei1231-webman-storage/health.svg)

```
[![Health](https://phpackages.com/badges/gitfei1231-webman-storage/health.svg)](https://phpackages.com/packages/gitfei1231-webman-storage)
```

###  Alternatives

[tinywan/storage

webman storage plugin

3521.6k24](/packages/tinywan-storage)[ericnorris/amazon-s3-php

A lightweight and fast S3 client for PHP.

2147.0k](/packages/ericnorris-amazon-s3-php)

PHPackages © 2026

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