doris/yii2-upload-file 问题修复 & 功能扩展

解决BUG、新增功能、兼容多环境部署,快速响应你的开发需求

邮箱:yvsm@zunyunkeji.com | QQ:316430983 | 微信:yvsm316

doris/yii2-upload-file

Composer 安装命令:

composer require doris/yii2-upload-file

包简介

File Uploader Widget with BS4

README 文档

README

File Uploader Widget

Installation

The preferred way to install this extension is through composer.

Either run

composer require doris/yii2-upload-file 'dev-master'

or add

"doris/yii2-upload-file": "dev-master"

to the require section of your composer.json file.

yii2-upload-file

Required params

model - required ( object - \yii\db\ActiveRecord )
form  - required ( object - \yii\widgets\ActiveForm )
uploadType - required (allow types are - Uploader::UPLOAD_TYPE_IMAGE | Uploader::UPLOAD_TYPE_VIDEO | Uploader::UPLOAD_TYPE_FILE | Uploader::UPLOAD_TYPE_AUDIO )
language - required ( allow languages are - en-US | ru-RU | uk-UA )
attributes - required (array, attribute - needs for saving file name to db and validate (in model rules), tempAttribute needs for transfer uploaded file from asociative array $_FILES, it is public property in your model)
uploadPath - required (type string)  

Additional properties

moduleName - not required, if you use basic version Yii2 you must set muduleName (it is name of you admin module, you may find it in your config file).  
urlOptions - not required (by default uploadUrl => upload-file, deleteUrl => delete-file), you may set your custom urls and determine them in your controller 
options => [
    1) multiple - by default false,
    2) uploadMineType - depends on param uploadType, if this option will not be specified upload file widget automaticaly determine uploadMineType.
         You may set another mineTypes using doris\uploadFile\helpers\UploadHelper. 
         There where some methods fo set mine types: 
          - UploadHelper::uploadMineTypeForImages()
          - UploadHelper::uploadMineTypeForVideo()
          - UploadHelper::uploadMineTypeForAudio()
         Or set your custom mine type in string format
    3) maxFileSize - this property indicated in the format integer or double, by default 3 MB (example 3, 0.2 ....)      
    4) resize - [
        'resizeWidth' => 450,
        'resizeHeight' => 450,
    ]
        Proportional resize by width and height - only for 'uploadType' => Uploader::UPLOAD_TYPE_IMAGE
        If resize option was specified you must identify resizeWidth and resizeHeight, they wiil be required.         
    5) fileMineType => FileUploader::MINE_TYPE_PDF | FileUploader::MINE_TYPE_EXCEL | FileUploader::MINE_TYPE_DOCUMENT
        This property works with uploadType => Uploader::UPLOAD_TYPE_FILE, by default have fileMineType value FileUploader::MINE_TYPE_PDF 
]
templateOptions => [
    1) uploadLimitWindow - show bootstrap alert window with resize information, by default true.
     Depends on resize option, if resize option was not specified uploadLimitWindow param will have false value. 
    2) bootstrapOuterWrapClasses -  by default col-xs-12 col-sm-12 col-md-12 col-lg-12, you may set your custom classes.
    2) bootstrapInnerWrapClasses -  by default col-xs-12 col-sm-12 col-md-12 col-lg-12, you may set your custom classes.
] 

NOTE: You must set in params.php domain name (example 'domain' => 'http://example.domain'), for stable generating path for preview.

NOTE: If you using basic version Yii2 you must set moduleName option, for stable generating urls to default processing actions.

Usage

Once the extension is installed, simply use it in your code by  :

##Controller

<?php
use yii\helpers\ArrayHelper;
use doris\uploadFile\actions\UploadFileAction;
use doris\uploadFile\actions\DeleteFileAction;

class PostController extends \yii\web\Controller
{
   public function actions()
    {
        return ArrayHelper::merge(parent::actions(),[
                'upload-file' => ['class' => UploadFileAction::class], //action for uploading file                   
                'delete-file' => ['class' => DeleteFileAction::class], //action for deleting file
            ]);
        }
}
?>

View

Upload image example

<?php
use doris\uploadFile\components\Uploader;
use doris\uploadFile\UploadFileWidget;
?>

<?=  UploadFileWidget::widget([ 
    'model' => $model,
    'form' => $form,
    'uploadType' => Uploader::UPLOAD_TYPE_IMAGE,
    'language' => 'en-US',
    'uploadPath' => 'image/prev',
    'attributes' => [
        'attribute' => 'image',
        'tempAttribute' => 'tempUploadImage',
    ],
    'options' => [        
        'maxFileSize' => 2,
        'resize' => [
            'resizeWidth' => 450,
            'resizeHeight' => 450,
        ],
    ],
    'templateOptions' => [
        'uploadLimitWindow' => true,
        'bootstrapOuterWrapClasses' => 'col-xs-12 col-sm-12 col-md-6 col-lg-12',
        'bootstrapInnerWrapClasses' => 'col-xs-6 col-sm-6 col-md-6 col-lg-12'
    ]
])?>    

Upload video example

<?php
use doris\uploadFile\components\Uploader;
use doris\uploadFile\UploadFileWidget;
?>

<?=  UploadFileWidget::widget([ 
    'model' => $model,
    'form' => $form,
    'uploadType' => Uploader::UPLOAD_TYPE_VIDEO,
    'language' => 'en-US',
    'uploadPath' => 'video/video-folder',
    'attributes' => [
        'attribute' => 'video',
        'tempAttribute' => 'tempUploadVideo',
    ],
    'options' => [       
        'maxFileSize' => 2,
    ],
    'templateOptions' => [      
        'bootstrapOuterWrapClasses' => 'col-xs-12 col-sm-12 col-md-6 col-lg-12',
        'bootstrapInnerWrapClasses' => 'col-xs-6 col-sm-6 col-md-6 col-lg-12'
    ]
])?>     

Upload file example

<?php
use doris\uploadFile\components\Uploader;
use doris\uploadFile\UploadFileWidget;
use doris\uploadFile\components\FileUploader;
?>

<?=  UploadFileWidget::widget([ 
    'model' => $model,
    'form' => $form,
    'uploadType' => Uploader::UPLOAD_TYPE_FILE,
    'language' => 'en-US',
    'uploadPath' => 'files/file-folder',
    'attributes' => [
        'attribute' => 'file',
        'tempAttribute' => 'tempUploadFile',
    ],
    'options' => [
        'fileMineType' => FileUploader::MINE_TYPE_DOCUMENT,//FileUploader::MINE_TYPE_DOCUMENT | FileUploader::MINE_TYPE_EXCEL | FileUploader::MINE_TYPE_PDF
        'maxFileSize' => 25,
    ],
    'templateOptions' => [      
        'bootstrapOuterWrapClasses' => 'col-xs-12 col-sm-12 col-md-6 col-lg-12',
        'bootstrapInnerWrapClasses' => 'col-xs-6 col-sm-6 col-md-6 col-lg-12'
    ]
])?>     

Upload audio file example

<?php
use doris\uploadFile\components\Uploader;
use doris\uploadFile\UploadFileWidget;
?>

<?=  UploadFileWidget::widget([ 
    'model' => $model,
    'form' => $form,
    'uploadType' => Uploader::UPLOAD_TYPE_AUDIO,
    'language' => 'en-US',
    'uploadPath' => 'audio/audio-folder',
    'attributes' => [
        'attribute' => 'file',
        'tempAttribute' => 'tempUploadFile',
    ],
    'options' => [        
        'maxFileSize' => 25,
    ],
    'templateOptions' => [      
        'bootstrapOuterWrapClasses' => 'col-xs-12 col-sm-12 col-md-6 col-lg-12',
        'bootstrapInnerWrapClasses' => 'col-xs-6 col-sm-6 col-md-6 col-lg-12'
    ]
])?>     

统计信息

  • 总下载量: 64
  • 月度下载量: 0
  • 日度下载量: 0
  • 收藏数: 0
  • 点击次数: 0
  • 依赖项目数: 0
  • 推荐数: 0

GitHub 信息

  • Stars: 0
  • Watchers: 0
  • Forks: 1
  • 开发语言: PHP

其他信息

  • 授权协议: MIT
  • 更新时间: 2020-06-26

承接程序开发

PHP开发

VUE

Vue开发

前端开发

小程序开发

公众号开发

系统定制

数据库设计

云部署

网站建设

安全加固