mahdi-mohammadi / phalcon-uploader
Phalcon 文件上传器。用于处理和下载 Phalcon 项目的文件。支持多文件下载,过滤器等...
1.3-beta
2015-05-07 17:51 UTC
Requires
- php: >=5.4.0
This package is not auto-updated.
Last update: 2024-09-18 20:19:46 UTC
README
描述
用于处理和下载 Phalcon 项目的文件。支持多文件,过滤器等.... (目前处于 TDD 阶段)
变更日志
[v 1.3-beta] 2015-05-07
- It support Phalcon 2.0
[v 1.2-beta] 2015-05-07
- ability to use closure (anonimous function) for generate uploaded file name
[v 1.1-beta] 2015-02-23
- ability to delete files after downloading ($uploader->truncate())
[v 1.0-beta] 2015-01-10
- added validator (sizes, extensions, mime types, directory upload)
- added filters (sanitize filename pre save, hash filename)
兼容性
- PSR-0, PSR-1, PSR-2, PSR-4 标准
系统需求
- PHP 5.4.x >
- Phalcon 扩展 1.3.x
安装
首先通过 composer 更新依赖。将以下内容添加到 composer.json 文件中
"require": { "stanislav-web/phalcon-uploader": "1.0-stable", }
然后运行以下命令来更新依赖和自动加载器
php composer.phar update php composer.phar install
或者
php composer.phar require stanislav-web/phalcon-uploader dev-master
(别忘了包含 composer 自动加载器)
或者在你的加载服务中手动 require
$loader->registerNamespaces([ 'Uploader\Uploader' => 'path to src' ]);
你可以创建一个可注入的服务
$di->set('uploader', '\Uploader\Uploader');
使用方法
简单使用
<?php if($this->request->hasFiles() !== false) { // get uploader service $uploader = $this->di->get('uploader'); // setting up uloader rules $uploader->setRules([ 'directory' => '/files', ]); // or use constructor if you don't use service $uploader = new \Uploader\Uploader(([ 'directory' => '/files', ]); }
过滤器
<?php if($this->request->hasFiles() !== false) { // get uploader service or \Uploader\Uploader $uploader = $this->di->get('uploader'); // setting up uloader rules $uploader->setRules([ 'directory' => '/files', 'minsize' => 1000, // bytes 'maxsize' => 1000000,// bytes 'mimes' => [ // any allowed mime types 'image/gif', 'image/jpeg', 'image/png', ], 'extensions' => [ // any allowed extensions 'gif', 'jpeg', 'jpg', 'png', ], 'sanitize' => true // escape file & translate to latin 'hash' => 'md5' // save file as hash (default md5) you can use ANY function to handle filename ]); }
完整处理
<?php if($this->request->hasFiles() !== false) { // get uploader service or \Uploader\Uploader $uploader = $this->di->get('uploader'); // setting up uloader rules $uploader->setRules([ 'directory' => '/files', 'minsize' => 1000, // bytes 'maxsize' => 1000000,// bytes 'mimes' => [ // any allowed mime types 'image/gif', 'image/jpeg', 'image/png', ], 'extensions' => [ // any allowed extensions 'gif', 'jpeg', 'jpg', 'png', ], 'sanitize' => true 'hash' => 'md5' ]); if($uploader->isValid() === true) { $uploader->move(); // upload files array result $uploader->getInfo() // var dump to see upload files } else { $uploader->getErrors(); // var_dump errors } } // you always can remove all files uploaded by one iteration $uploader->truncate(); // added 1.1
单元测试
在 /phpunit 目录中也可用。运行以下命令开始测试
php build/phpunit.phar --configuration phpunit.xml.dist --coverage-text
从 phpunit/log 目录读取日志
##变更日志
##问题