lav45 / yii2-file-upload-module
这是Yii2框架的扩展,用于上传文件并从浏览器访问它们
1.0.2
2024-02-20 14:41 UTC
Requires
- bower-asset/blueimp-file-upload: 10.*
- creocoder/yii2-flysystem: ~1.0
- yiisoft/yii2: 2.0.*
Requires (Dev)
- roave/security-advisories: dev-latest
README
这是一个Yii2框架的模块,可以帮助您上传文件并在浏览器中访问它们。
安装
安装此扩展的首选方式是通过 composer。
运行以下命令
~$ composer require --prefer-dist lav45/yii2-file-upload-module
或
"lav45/yii2-file-upload-module": "1.0.*"
将以下内容添加到您的 composer.json
文件的 require 部分。
基本用法
在主配置中添加路径别名和URL到您的文件存储位置,您需要配置您的Web服务器以指向 @storageDir
目录并指定 @storageUrl
return [ 'aliases' => [ '@storageUrl' => 'https://cdn.site.com/storage', ], 'components' => [ 'fs' => [ 'class' => creocoder\flysystem\LocalFilesystem::className(), 'path' => '@common/cdn', ] ], ];
将操作添加到主控制器中
use lav45\fileUpload\UploadAction; class PageController extends Controller { public function actions() { return [ 'upload' => [ 'class' => UploadAction::className(), ], ]; } }
需要在您的ActiveRecord模型中添加
use lav45\fileUpload\UploadTrait; use lav45\fileUpload\UploadBehavior; use lav45\fileUpload\UploadInterface; class Page extends ActiveRecord implements UploadInterface { use UploadTrait; public function rules() { return [ [['image'], 'string'], ]; } public function behaviors() { return [ [ 'class' => UploadBehavior::className(), 'attribute' => 'image', ], ]; } public function getUploadPath() { return '/page/' . $this->id; } }
需要添加一个用于上传文件的字段
/** * @var Page $model */ use lav45\fileUpload\widget\FileUpload; $form = ActiveForm::begin(); echo $form->field($model, 'image')->widget(FileUpload::className()); ActiveForm::end();
显示上传的文件
<?php /** * @var Page $model */ ?> <img src="<?= $model->getAttributeUrl('image') ?>" alt="">