yii2怎么用uploadify

uploadify是來自國外的一款優秀jquery插件,主要功能是批量上傳文件

yii2怎么用uploadify

下載Uploadify控件可以到git網站上找,找到自己適合用的.例如我們下面用個就是從

https://github.com/xjflyttp/yii2-uploadify-widget 下載的,里面也有詳細的操作文檔。 ? (推薦學習:yii教程

① 配置composer.json (就存在網站根目錄下),找到require,然后添加我們的uploadify

"require":?{ "php":?">=5.4.0", "yiisoft/yii2":?">=2.0.6", "yiisoft/yii2-bootstrap":?"*", "yiisoft/yii2-swiftmailer":?"*", "xj/yii2-uploadify-widget":?"~2.0.0"?//這里是新添加的 },

② 利用composer 將yii2-uploadify-widget 下載到我們網站, 打開在網站根目錄運行命令行 ,等待下載如圖:

yii2怎么用uploadify

③ 視圖的處理

<?php use yiiwebJsExpression; //外部TAG echo Html::fileInput(&#39;test&#39;, NULL, [&#39;id&#39; =>?'test']); echo?Uploadify::widget([ ????'url'?=&gt;?yiihelpersUrl::to(['s-upload']), ????'id'?=&gt;?'test',?//需要跟上fileInput?的id?對應 ????'csrf'?=&gt;?true, ????'renderTag'?=&gt;?false, ?????'jsOptions'?=&gt;?[ ??????????????????'width'?=&gt;?100, ??????????????????'height'?=&gt;?40, ??????????????????'onUploadError'?=&gt;?new?JsExpression(?new?JsExpression(<p>④?配置Controller 層</p><pre class="brush:html;toolbar:false"><?php namespace backendcontrollers; use xjuploadifyUploadAction; class TestController extends yiiwebController {    public function actions() {     return [         &#39;s-upload&#39; =>?[ ????????????'class'?=&gt;?UploadAction::className(), ????????????//磁盤目錄 ????????????'basePath'?=&gt;?'@webroot/upload', ????????????//訪問目錄 ????????????'baseUrl'?=&gt;?'@web/upload', ????????????//防止跨站攻擊 ????????????'enableCsrf'?=&gt;?true,?//?default ????????????'postFieldName'?=&gt;?'Filedata',?//?default ????????????//BEGIN?METHOD ????????????'format'?=&gt;?[$this,?'methodName'], ????????????//END?METHOD ????????????//BEGIN?CLOSURE?BY-HASH ????????????//是否覆蓋相同文件 ????????????'overwriteIfExist'?=&gt;?true, ????????????//創建圖片名稱 ????????????'format'?=&gt;?function?(UploadAction?$action)?{ ????????????????$fileext?=?$action-&gt;uploadfile-&gt;getExtension(); ????????????????$filename?=?sha1_file($action-&gt;uploadfile-&gt;tempName); ????????????????return?"{$filename}.{$fileext}"; ????????????}, ?????????????//想要多調用這個函數 ????????????'format'?=&gt;?function?(UploadAction?$action)?{ ????????????????$fileext?=?$action-&gt;uploadfile-&gt;getExtension(); ????????????????$filehash?=?sha1(uniqid()?.?time()); ????????????????$p1?=?substr($filehash,?0,?2); ????????????????$p2?=?substr($filehash,?2,?2); ????????????????return?"{$p1}/{$p2}/{$filehash}.{$fileext}"; ????????????}, ????????????*/ ????????????'validateOptions'?=&gt;?[ ????????????????'extensions'?=&gt;?['jpg',?'png'],?//后綴驗證 ????????????????'maxSize'?=&gt;?1?*?1024?*?1024,?//上傳大小限制 ?????????????], ?????????????//驗證前處理 ????????????'beforeValidate'?=&gt;?function?(UploadAction?$action)?{ ????????????????//throw?new?Exception('test?error'); ????????????????}, ?????????????//驗證后處理 ????????????'afterValidate'?=&gt;?function?(UploadAction?$action)?{}, ?????????????//保存前處理 ????????????'beforeSave'?=&gt;?function?(UploadAction?$action)?{}, ????????????//保存后處理 ????????????'afterSave'?=&gt;?function?(UploadAction?$action)?{ ????????????????//$action-&gt;output?返回給瀏覽器的數據 ????????????????//返回Url?圖片返回的路徑 ????????????????//$action-&gt;getWebUrl() ????????????????//圖片的名稱 ????????????????//$action-&gt;getFilename(); ????????????????//保存圖片的物理位置 ????????????????//$action-&gt;getSavePath(); ????????????????//輸出????????????????????????????????? ????????????????//$action-&gt;output['fileUrl']?=?$action-&gt;getWebUrl(); ????????????????//$action-&gt;output['fileName']?=?$action-&gt;getFilename(); ????????????????//$action-&gt;output['filePath']?=?$action-&gt;getSavePath(); ????????????????//$action-&gt;getFilename();?//?"image/yyyymmddtimerand.jpg" ????????????????//$action-&gt;getWebUrl();?//??"baseUrl?+?filename,?/upload/image/yyyymmddtimerand.jpg" ?????????????????//$action-&gt;getSavePath();?//?"/var/www/htdocs/upload/image/yyyymmddtimerand.jpg" ????????????????$action-&gt;output[‘fileUrl’]?=?$action-&gt;getWebUrl() ??????????????}, ???????????], ????????]; ?????} ???} ?&gt;

? 版權聲明
THE END
喜歡就支持一下吧
點贊8 分享