vlaim / yii2-file-upload
Yii2 FileUpload – 用于将文件上传到本地服务器或Amazon S3的PHP库
Requires
- php: >=5.5.0
- aws/aws-sdk-php: 2.*
- yiisoft/yii2: *
Requires (Dev)
- phpunit/phpunit: 5.5.*
- squizlabs/php_codesniffer: 2.*
This package is not auto-updated.
Last update: 2020-02-21 17:05:57 UTC
README
Yii2 FileUpload – 用于将文件上传到您的服务器或 Amazon S3 的PHP库。它使得开发者可以轻松处理yii2的UploadedFile实例。还可以通过外部源通过URL上传文件。
入门
安装
安装此扩展的首选方式是通过 composer。
注意:请检查此扩展的依赖和依赖项,请参阅 composer.json。阅读有关设置应用程序的composer.json中的
minimum-stability
设置的Web提示/ Wiki。
运行以下命令之一:
$ php composer.phar require vlaim/yii2-file-upload "dev-master"
或
"vlaim/yii2-file-upload": "dev-master"
添加到您的 composer.json
文件的 require
部分。
不要忘记包含Composer自动加载器并定义库的命名空间
<?php require '/path/to/vendor/autoload.php'; use vlaim\fileupload\FileUpload;
快速示例
将文件上传到本地服务器
$photo = UploadedFile::getInstance($model, 'photo'); $uploader = new FileUpload(FileUpload::S_LOCAL);
将文件上传到Amazon S3
此代码将文件上传到Amazon S3。您必须在FileUpload构造函数的第二个参数中提供一个关联数组,如下所示
$photo = UploadedFile::getInstance($model, 'photo'); $uploader = new FileUpload(FileUpload::S_S3, [ 'version' => 'latest', 'region' => '<regiongoeshere>', 'credentials' => [ 'key' => '<keygoeshere>', 'secret' => '<secretgoeshere>' ], 'bucket' => '<bucketgoeshere>' ]);
方法
setUploadFolder(string $folder)
设置文件上传到的文件夹名称。
默认为 'uploads'
$uploader->setUploadFolder('photos');
setFsPath(string $fsPath)
(仅限本地模式)
设置文件上传到的路径。您可以提供绝对路径或相对路径
默认为 /
$uploader->setFsPath('/var/www/path/to/your/app/');
setFsUrl(string $url)
(仅限本地模式)
设置URL。例如,如果您将路径设置为 'http://static.example.com',则上传后文件的URL将是http://static.example.com/path/to/your/file
默认为 /
$uploader->setFsPath('http://pathtoyoursite.com');
hashFilename(boolean $hash)
定义是否需要使用md5算法对上传文件名进行散列
md5($fileName . time() . mt_rand(0, 30) // file.png upload filename will be 2122c3a6ad9997af28cab44b7fe7ab90.jpg
默认为 true
$uploader->hashFilename(false);
setACL(string $acl)
设置访问控制列表。
更多详细信息请参阅 http://docs.aws.amazon.com/AmazonS3/latest/dev/acl-overview.html
$uploader->setACL('public-read');
捕获和处理异常
要捕获异常,请使用 FileUploadException 类
<?php use vlaim\fileupload\FileUploadException; try{ //your code goes here } catch(FileUploadException $e){ echo $e->getMessage(); }
测试
将很快添加 :)
问题
可以通过 Github Issue Tracker 提交错误报告和功能请求。
许可证
yii2-file-upload 在 MIT 许可下发布。请参阅捆绑的 LICENSE.md 以获取详细信息。