PHPackages                             aileshe/upload - 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. aileshe/upload

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

aileshe/upload
==============

file upload

v0.1.2(8y ago)122964↓66.7%37[2 issues](https://github.com/aileshe/Upload/issues)1MITPHPPHP &gt;=5.3

Since Apr 24Pushed 8y ago4 watchersCompare

[ Source](https://github.com/aileshe/Upload)[ Packagist](https://packagist.org/packages/aileshe/upload)[ RSS](/packages/aileshe-upload/feed)WikiDiscussions master Synced 3d ago

READMEChangelogDependenciesVersions (4)Used By (1)

Upload是什么?
==========

[](#upload是什么)

一个PHP文件上传组件，该组件简化了上传文件的验证使用会更简单优雅！

安装
==

[](#安装)

通过composer，这是推荐的方式，可以使用composer.json 声明依赖，或者直接运行下面的命令。

```
composer require aileshe/upload:*

```

放入composer.json文件中

```
    "require": {
        "aileshe/upload": "*"
    }

```

然后运行

```
composer update

```

基本用法
====

[](#基本用法)

以下是一个模拟 "单文件上传" 和 "多文件上传" 的Demo表单HTML代码

```

    本地单文件上传

    本地多文件上传

```

upload.php 代码如下

```
$upload = new \Dj\Upload();
$filelist = $upload->save('./upload');
if(is_array($filelist)){
    # 返回数组，文件就上传成功了
    print_r($filelist);
}else{
    # 如果返回负整数(int)就是发生错误了
    $error_msg = [-1=>'上传失败',-2=>'文件存储路径不合法',-3=>'上传非法格式文件',-4=>'文件大小不合符规定',-5=>'token验证错误'];
    echo $error_msg[$filelist];
}

```

上传成功返回打印结果

```
# 单文件上传
Array
(
    [name] => 919ff6986614ada.jpg    // 上传时的原文件名
    [ext] => jpg                     // 文件后缀名
    [mime] => image/jpeg             // 文件MIME
    [size] => 171635                 // 文件大小(单位:字节)
    [savename] => 1524626782VGdnXS50.jpg    // 文件上传后在服务器上存储的名称
    [savepath] => E:/WWW/composer/upload_dev/upload/1524626782VGdnXS50.jpg  // 上传到服务器的存储绝对路径
    [url] => http://upload.a.com/upload/1524626782VGdnXS50.jpg  // 文件访问URL地址
    [uri] => /upload/1524626782VGdnXS50.jpg                     // 文件访问URI地址
    [md5] => 6308045756c126c8b823f4ade0bad77d                   // 文件MD5
)

# 多文件上传
Array
(
    [0] => Array
        (
            [name] => dejan.jpg
            [ext] => jpg
            [mime] => image/jpeg
            [size] => 1964
            [savename] => 1524627074JQLQuKXs.jpg
            [savepath] => E:/WWW/composer/upload_dev/upload/1524627074JQLQuKXs.jpg
            [url] => http://upload.a.com/upload/1524627074JQLQuKXs.jpg
            [uri] => /upload/1524627074JQLQuKXs.jpg
            [md5] => 9382a7b44ea865519c82d077cd6346b0
        )

    [1] => Array
        (
            [name] => 《系统安装手册》.docx
            [ext] => docx
            [mime] => application/vnd.openxmlformats-officedocument.wordprocessingml.document
            [size] => 1041956
            [savename] => 1524627074oQVSkUO2.docx
            [savepath] => E:/WWW/composer/upload_dev/upload/1524627074oQVSkUO2.docx
            [url] => http://upload.a.com/upload/1524627074oQVSkUO2.docx
            [uri] => /upload/1524627074oQVSkUO2.docx
            [md5] => 9f1c186790769c09a9318eb352deb114
        )

    [2] => Array
        (
            [name] => 测试导入用户.xlsx
            [ext] => xlsx
            [mime] => application/vnd.openxmlformats-officedocument.spreadsheetml.sheet
            [size] => 9249
            [savename] => 1524627074LUkMlrPQ.xlsx
            [savepath] => E:/WWW/composer/upload_dev/upload/1524627074LUkMlrPQ.xlsx
            [url] => http://upload.a.com/upload/1524627074LUkMlrPQ.xlsx
            [uri] => /upload/1524627074LUkMlrPQ.xlsx
            [md5] => b1f1c10005fcf0a2b59326a3aa3af032
        )

)

```

### $upload-&gt;save($storage, $allow, $host)

[](#upload-savestorage-allow-host)

> \- storage \[string\]

上传文件到哪的存储路径

> \- allow (optional) \[array\]

文件上传过滤允许规则定义

> \- host (optional) \[string\]

上传到服务器后文件的URL访问域名

### $upload-&gt;save($storage, $host)

[](#upload-savestorage-host)

> \- storage \[string\]

上传文件到哪的存储路径

> \- host (optional) \[string\]

上传到服务器后文件的URL访问域名

#### 返回值参照:

[](#返回值参照)

返回值说明Array()上传文件成功-1上传失败-2指定上传文件的存储路径不合法-3上传非法格式文件-4文件大小不合符规定-5token验证错误高级用法
====

[](#高级用法)

#### 1) 设置上传文件表单name, 默认是'file'

[](#1-设置上传文件表单name-默认是file)

```
new \Dj\Upload('form-file-name');   #

```

#### 2) 开启 token验证

[](#2-开启-token验证)

```
$upload = new \Dj\Upload();
$upload->token('FFFX123456');  # 设置 token
$filelist = $upload->save('./upload');

# 或

$upload = new \Dj\Upload();
$filelist = $upload->token('FFFX123456')->save('./upload');

```

同时在上传文件时要也要POST提交正确的token

```

```

#### 3) 上传指定格式文件(通过后缀名方式限制)

[](#3-上传指定格式文件通过后缀名方式限制)

```
$upload = new \Dj\Upload();
$filelist = $upload->save('./upload', [
    'ext'=>'jpg,jpeg,png,gif'
]);

# 或

$upload = new \Dj\Upload();
$filelist = $upload->save('./upload', [
    'ext'=>['jpg','jpeg','png','gif']
]);

```

#### 4) 上传指定格式文件(通过MIME方式限制)

[](#4-上传指定格式文件通过mime方式限制)

```
$upload = new \Dj\Upload();
$filelist = $upload->save('./upload', [
    'mime'=>'image/jpeg,image/gif,image/bmp'
]);

# 或

$upload = new \Dj\Upload();
$filelist = $upload->save('./upload', [
    'mime'=>['image/jpeg','image/gif','image/bmp']
]);

```

#### 5) 上传文件许可的大小限制

[](#5-上传文件许可的大小限制)

```
$upload = new \Dj\Upload();
$filelist = $upload->save('./upload', [
    'size'=>5242880
]);

```

同时"过滤参数"是可以混用的, 如 只想限制文件大小和文件类型、可以上传xx后缀的同时要匹配MIME等.. 都可以的大胆相信无所不能!

```
$upload = new \Dj\Upload();
$filelist = $upload->save('./upload', [
    'ext'=>'jpg,jpeg,png,gif',
    'mime'=>'application/vnd.openxmlformats-officedocument.wordprocessingml.document',
    'size'=>5242880
]);

# 或

$upload = new \Dj\Upload();
$filelist = $upload->save('./upload', [
    'ext'=>'jpg,jpeg,png,gif',
    'size'=>5242880
]);

# 或

$upload = new \Dj\Upload();
$filelist = $upload->save('./upload', [
    'ext'=>'jpg,jpeg,png,gif',
    'mime'=>'application/vnd.openxmlformats-officedocument.wordprocessingml.document'
]);

```

#### 6) 设置上传后返回文件URL的域名

[](#6-设置上传后返回文件url的域名)

```
$upload = new \Dj\Upload();
$filelist = $upload->save('./upload', 'img.sop6.com');

# 如果有过滤参数还可以这样定义

$upload = new \Dj\Upload();
$filelist = $upload->save('./upload', [
    'ext'=>'jpg,jpeg,png,gif',
    'mime'=>'application/vnd.openxmlformats-officedocument.wordprocessingml.document',
    'size'=>5242880
], 'img.sop6.com');

```

设置域名img.sop6.com后返回的上传结果如下(带 \* 号那行)

```
Array
(
    [name] => 919ff6986614ada.jpg    // 上传时的原文件名
    [ext] => jpg                     // 文件后缀名
    [mime] => image/jpeg             // 文件MIME
    [size] => 171635                 // 文件大小(单位:字节)
    [savename] => 1524626782VGdnXS50.jpg    // 文件上传后在服务器上存储的名称
    [savepath] => E:/WWW/composer/upload_dev/upload/1524626782VGdnXS50.jpg  // 上传到服务器的存储绝对路径
    [url] => http://img.sop6.com/upload/1524626782VGdnXS50.jpg  // * 文件访问URL地址
    [uri] => /upload/1524626782VGdnXS50.jpg                     // 文件访问URI地址
    [md5] => 6308045756c126c8b823f4ade0bad77d                   // 文件MD5
)

```

联系方式
====

[](#联系方式)

Author: Dejan

QQ: 673008865

###  Health Score

32

—

LowBetter than 72% of packages

Maintenance20

Infrequent updates — may be unmaintained

Popularity33

Limited adoption so far

Community17

Small or concentrated contributor base

Maturity50

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

Total

3

Last Release

2942d ago

### Community

Maintainers

![](https://www.gravatar.com/avatar/988c14fbb3c61d3bdbbb1dc723236b6bc062178c3f34f923bddc7a049ec42064?d=identicon)[aileshe](/maintainers/aileshe)

---

Top Contributors

[![aileshe](https://avatars.githubusercontent.com/u/28887594?v=4)](https://github.com/aileshe "aileshe (19 commits)")

---

Tags

file-uploadphpuploadupload-file

### Embed Badge

![Health badge](/badges/aileshe-upload/health.svg)

```
[![Health](https://phpackages.com/badges/aileshe-upload/health.svg)](https://phpackages.com/packages/aileshe-upload)
```

###  Alternatives

[knplabs/gaufrette

PHP library that provides a filesystem abstraction layer

2.5k39.8M123](/packages/knplabs-gaufrette)[google/cloud-storage

Cloud Storage Client for PHP

34390.8M125](/packages/google-cloud-storage)[illuminate/filesystem

The Illuminate Filesystem package.

15261.6M2.6k](/packages/illuminate-filesystem)[superbalist/flysystem-google-storage

Flysystem adapter for Google Cloud Storage

26320.6M30](/packages/superbalist-flysystem-google-storage)[creocoder/yii2-flysystem

The flysystem extension for the Yii framework

2931.7M62](/packages/creocoder-yii2-flysystem)[flowjs/flow-php-server

PHP library for handling chunk uploads. Works with flow.js html5 file uploads.

2451.6M15](/packages/flowjs-flow-php-server)

PHPackages © 2026

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