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 分享