gomonkey / yii2-easy-uploader
一个简单易用的文件夹创建和图片或文件上传工具
Requires
This package is not auto-updated.
Last update: 2024-09-20 19:45:27 UTC
README
yii2的简单上传扩展
通过一行简单的代码即可创建文件夹和上传图片。
安装
安装此扩展的首选方式是通过 composer。
运行以下命令
php composer.phar require gomonkey/yii2-easy-uploader "*"
或在您的 composer.json
文件的 require 部分添加以下内容:
"gomonkey/yii2-easy-uploader": "*"
使用方法
参数
在您的配置文件(common/config/main.php)中添加,以便在前后端使用
'components' => [ 'uploaders' => [ 'class' => 'gomonkey\uploader\Uploader', 'baseFrontendUrl' => dirname(dirname(__DIR__)) . '/frontend/web/images', 'baseBackendUrl' => dirname(dirname(__DIR__)) . '/backend/web/images', 'rename' => true, // Rename file 'random' => 12, // random alphanumeric name 'remove' => true, // Remove original file after upload 'folders' => [ [ 'name' => '1200', 'quality' => 70, 'width' => 1200 ], [ 'name' => '800', 'quality' => 70, 'width' => 800 ], [ 'name' => '600', 'quality' => 70, 'width' => 600 ], [ 'name' => 'avatars', 'quality' => 70, 'width' => 200 ] ] ], ],
如果您使用基本模板,仍然可以使用上面的相同代码,只需将代码放入您的配置文件中,并更改 baseFrontendUrl。您可以删除或注释掉 baseBackendUrl
控制器
在您的控制器中添加 UploadFile
use yii\web\UploadedFile;
单图上传
在您的控制器操作中
$upload = new Yii::$app->uploaders(); /** If you want to use backend path: $upload = new Yii::$app->uploaders("backend"); **/ $model->image = $upload->upload(UploadedFile::getInstance($model, 'image'), "avatars");
$model->image 现在具有已上传图片的名称,准备好保存到数据库中。
多图上传
foreach (UploadedFile::getInstances($model, 'image') as $file) { $model->image = (new Yii::$app->uploaders())->upload($file, "avatars"); }
从URL上传
现在可以从其他网站通过动态或静态URL上传图片。相同的代码可以在循环中使用
$model->image = $upload->uploadFromUrl("https://www.website.it/url/to/image/image.jpg", "myFolder");
注意:不需要上传实例
无限文件夹生成
您可以创建无限多的文件夹。例如,使用用户ID:images/user/3/1200/imagename.jpg
$model->image = $upload->upload(UploadedFile::getInstance($model, 'image'), "users/".Yii::$app->user->id);
在您的视图中
别忘了在您的表单中使用 multipart/form-data
<?php $form = ActiveForm::begin([ 'options' => ['enctype'=>'multipart/form-data'] ]); ?>
从文件夹中删除图片
如果您需要从所有文件夹中删除一个或多个图片
( new Yii::$app->uploaders() )>delete( file, folder );
例如
(new Yii::$app->uploaders())->delete($model->name, "/products/".Yii::$app->user->id);
它会删除您路径/products/user id/设置的其他文件夹/file中的所有图片
参数
rename (类型:布尔值
,默认值:true
')
将重命名您上传的文件,如果您不想更改文件名,则将其设置为 false
remove (类型:布尔值
,默认值:true
')
删除原始文件
random (类型:整数
,默认值:10)
随机是字母数字图片名称的长度
baseFrontendUrl (类型:字符串
)
您的前端(或基本模板的 web 路径)到图片文件夹的路径
baseBackendUrl (类型:字符串
)
您的后端到图片文件夹的路径
folders (类型:数组
)
文件夹不是主要的,这些必须在控制器中设置
- name[] = 是文件夹的名称
- quality[] = 是上传图片的质量
- width[] = 是图片的宽度,高度将被缩放