大侠实验室 / yii2-uploader-behavior
Yii2 Uploader Behavior 是一个用于 Active Record 的上传行为,它自动处理所有标记有 `file` 或 `image` 验证规则的属性文件上传。同时,它还配置了文件名重命名和存储在数据库作为属性值的方式。
1.0.3
2023-07-09 23:23 UTC
Requires
- yiisoft/yii2: *
This package is auto-updated.
Last update: 2024-09-10 02:00:43 UTC
README
自动处理所有标记有 file
或 image
验证规则的属性文件上传。它还配置了文件名重命名和存储在数据库作为属性值的方式。
安装
通过 composer 安装此扩展是首选方式。
运行以下命令:
php composer.phar require --prefer-dist daxslab/yii2-uploader-behavior "*"
或者
"daxslab/yii2-uploader-behavior": "*"
将以下内容添加到您的 composer.json
文件的 require 部分中。
使用方法
扩展安装完成后,您可以通过在模型中使用以下方式来使用它:
use daxslab/behaviors/UploaderBehavior; public function behaviors() { return [ UploaderBehavior::className() ]; }
这是最简单的方法。它将查找所有具有 file
或 image
验证规则的属性。
public function rules() { return [ [['name'], 'required'], [['name'], 'string', 'max' => 256], [['image'], 'image', 'skipOnEmpty' => true], ]; }
并且更新表单以指定图像属性的文件输入
$form->field($model, 'image')->fileInput();
为了更精确的控制,您可以使用 attributes
选项来指定要控制的属性,如下所示:
use daxslab/behaviors/UploaderBehavior; public function behaviors() { return [ [ 'class' => UploaderBehavior::className(), 'attributes' => ['avatar'] // or you can use the string format as in 'attributes' => 'avatar' ] ]; }
默认情况下,上传的文件名是随机的,但如果你想配置它,你可以设置 renamer
选项
use daxslab/behaviors/UploaderBehavior; public function behaviors() { return [ [ 'class' => UploaderBehavior::className(), 'attributes' => ['avatar'] // or you can use the string format as in 'attributes' => 'avatar' 'renamer' => UploaderBehavior::RENAME_MD5 //will encode the filename with md5() ] ]; }
你也可以指定一个自定义函数来重命名文件名
use daxslab/behaviors/UploaderBehavior; public function behaviors() { return [ [ 'class' => UploaderBehavior::className(), 'attributes' => ['avatar'] // or you can use the string format as in 'attributes' => 'avatar' 'renamer' => function($name, $owner){ return strtoupper($name); //will turn the filename into uppercase } ] ]; }
由 Daxslab 制作。