macroscope29/yii2-file-upload

Yii2 FileUpload – 用于将文件上传到本地服务器或Amazon S3的PHP库

v0.2.3 2016-12-03 13:01 UTC

This package is auto-updated.

Last update: 2024-09-15 04:47:28 UTC


README

Stable Version License

Yii2 FileUpload – 用于将文件上传到您的服务器或Amazon S3的PHP库。它使开发者能够轻松处理yii2的UploadedFile实例。也可以通过外部来源的URL上传文件。

入门指南

安装

安装此扩展的首选方法是通过 composer

注意:请检查此扩展的composer.json文件中的要求和相关依赖项。请阅读此web提示/wiki,了解如何为您的应用程序的composer.json设置minimum-stability设置。

运行以下命令之一:

$ 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文件。