yii2怎么用uploadify

广告:宝塔Linux面板高效运维的服务器管理软件 点击【 https://www.bt.cn/p/uNLv1L 】立即购买

yii2怎么用uploadify

Uploadify是来自国外的一款优秀jQuery插件,主要功能是批量上传文件

下载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 下载到我们网站, 打开在网站根目录运行命令行 ,等待下载如图:

③ 视图的处理

<?phpuse yii\web\JsExpression;//外部TAGecho Html::fileInput('test', NULL, ['id' => 'test']);echo Uploadify::widget([    'url' => yii\helpers\Url::to(['s-upload']),    'id' => 'test', //需要跟上fileInput 的id 对应    'csrf' => true,    'renderTag' => false,     'jsOptions' => [                  'width' => 100,                  'height' => 40,                  'onUploadError' => new JsExpression(<<<EOF                  function(file, errorCode, errorMsg, errorString) {                        console.log('The file ' + file.name + ' could not be uploaded: ' + errorString + errorCode + errorMsg);                    }EOF                    ),                    'onUploadSuccess' => new JsExpression(<<<EOF                    function(file, data, response) {                        data = JSON.parse(data);                        if (data.error) {                            console.log(data.msg);                             } else {                                //在此处理你的图片                               console.log(data.fileUrl);                        }                    }EOF
登录后复制

④ 配置Controller 层

<?phpnamespace \backend\controllers;use xj\uploadify\UploadAction;class TestController extends \yii\web\Controller{   public function actions() {    return [        's-upload' => [            'class' => UploadAction::className(),            //磁盘目录            'basePath' => '@webroot/upload',            //访问目录            'baseUrl' => '@web/upload',            //防止跨站攻击            'enableCsrf' => true, // default            'postFieldName' => 'Filedata', // default            //BEGIN METHOD            'format' => [$this, 'methodName'],            //END METHOD            //BEGIN CLOSURE BY-HASH            //是否覆盖相同文件            'overwriteIfExist' => true,            //创建图片名称            'format' => function (UploadAction $action) {                $fileext = $action->uploadfile->getExtension();                $filename = sha1_file($action->uploadfile->tempName);                return "{$filename}.{$fileext}";            },             //想要多调用这个函数            'format' => function (UploadAction $action) {                $fileext = $action->uploadfile->getExtension();                $filehash = sha1(uniqid() . time());                $p1 = substr($filehash, 0, 2);                $p2 = substr($filehash, 2, 2);                return "{$p1}/{$p2}/{$filehash}.{$fileext}";            },            */            'validateOptions' => [                'extensions' => ['jpg', 'png'], //后缀验证                'maxSize' => 1 * 1024 * 1024, //上传大小限制             ],             //验证前处理            'beforeValidate' => function (UploadAction $action) {                //throw new Exception('test error');                },             //验证后处理            'afterValidate' => function (UploadAction $action) {},             //保存前处理            'beforeSave' => function (UploadAction $action) {},            //保存后处理            'afterSave' => function (UploadAction $action) {                //$action->output 返回给浏览器的数据                //返回Url 图片返回的路径                //$action->getWebUrl()                //图片的名称                //$action->getFilename();                //保存图片的物理位置                //$action->getSavePath();                //输出                                                 //$action->output['fileUrl'] = $action->getWebUrl();                //$action->output['fileName'] = $action->getFilename();                //$action->output['filePath'] = $action->getSavePath();                //$action->getFilename(); // "image/yyyymmddtimerand.jpg"                //$action->getWebUrl(); //  "baseUrl + filename, /upload/image/yyyymmddtimerand.jpg"                 //$action->getSavePath(); // "/var/www/htdocs/upload/image/yyyymmddtimerand.jpg"                $action->output[‘fileUrl’] = $action->getWebUrl()              },           ],        ];     }   }?>
登录后复制

以上就是yii2怎么用uploadify的详细内容,更多请关注9543建站博客其它相关文章!

广告:SSL证书一年128.66元起,点击购买~~~

9543建站博客
一个专注于网站开发、微信开发的技术类纯净博客。
作者头像
admin创始人

肥猫,知名SEO博客站长,14年SEO经验。

上一篇:thinkphp怎么查询去除重复
下一篇:怎么把小程序添加到公众号文章

发表评论

关闭广告
关闭广告