fruktozets / yii2-dropzone
Yii2 Dropzone 上传器
1.1.1
2018-09-20 10:56 UTC
Requires
- php: >=7.2.0
- bower-asset/dropzone: ^5.5
- yiisoft/yii2: 2.0.*
- yiisoft/yii2-jui: 2.0.*
Requires (Dev)
- yiisoft/yii2-debug: 2.0.*
This package is not auto-updated.
Last update: 2024-09-29 05:49:22 UTC
README
需要源代码
composer require "fruktozets/yii2-dropzone"
执行迁移
'controllerMap' => [
'migrate' => [
...
'migrationNamespaces' => [
...
'fruktozets\dropzone',
],
],
],
创建一个连接图像和所有者的表。
$this->createTable('user_to_file', [
'user_id' => $this->integer(),
'file_id' => $this->integer(),
//'type' => $this->smallInteger()->notNull()->defaultValue(2),
]);
使用小部件
echo $form->field($model, 'images')->widget(DropZone::className(), [
'uploadUrl' => ['site/upload'],
])
使用操作
public function actions()
{
return [
'upload' => [
'class' => 'fruktozets\dropzone\actions\UploadAction',
'fileRule' => ['file', 'file', 'extensions' => ['jpg'], 'maxSize' => 1024*1024],
],
];
}
实现 IAttachable 接口
class UserToFile extends \yii\db\ActiveRecord implements IAttachable
使用行为
警告!"行为"名称必须等于"属性"名称!如果您想使用 MultipleFilesBehavior,请别忘了将关联文件模型的 'attribute' 添加到您的模型中。
使用 MultipleFilesBehavior 通过第三方表连接多个文件
public function behaviors()
{
$behaviors = parent::behaviors();
$behaviors['images'] = [
'class' => MultipleFilesBehavior::class,
'attribute' => 'images',
'linkModelClass' => UserToFile::class,
'additionalProperties' => ['type' => UserToFile::TYPE_IMAGE_MAIN,],
];
return $behaviors;
}
使用 FileBehavior 用于单个文件
public function behaviors()
{
$behaviors = parent::behaviors();
$behaviors['image_id'] = [
'class' => FileBehavior::class,
'attribute' => 'image_id',
];
return $behaviors;
}
别忘了将您的属性添加到模型中的规则中。
public function rules()
{
return [
```
[['images'], 'safe'],
];
}