lav45 / yii2-file-upload-module

这是Yii2框架的扩展,用于上传文件并从浏览器访问它们

安装次数: 2,042

依赖者: 0

建议者: 0

安全性: 0

星标: 3

关注者: 3

分支: 4

类型:yii2-extension

1.0.2 2024-02-20 14:41 UTC

This package is auto-updated.

Last update: 2024-08-29 11:22:52 UTC


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="">