首页 > php框架 > YII > yii2怎么用uploadify

yii2怎么用uploadify

(*-*)浩
发布: 2019-11-05 10:04:01
原创
3735 人浏览过

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

yii2怎么用uploadify

下载Uploadify控件可以到git网站上找,找到自己适合用的.例如我们下面用个就是从

https://github.com/xjflyttp/yii2-uploadify-widget 下载的,里面也有详细的操作文档。   (推荐学习:yii教程

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

1

2

3

4

5

6

7

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

yii-5.png

③ 视图的处理

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

<?php

use yii\web\JsExpression;

//外部TAG

echo Html::fileInput(&#39;test&#39;, NULL, [&#39;id&#39; => &#39;test&#39;]);

echo Uploadify::widget([

    &#39;url&#39; => yii\helpers\Url::to([&#39;s-upload&#39;]),

    &#39;id&#39; => &#39;test&#39;, //需要跟上fileInput 的id 对应

    &#39;csrf&#39; => true,

    &#39;renderTag&#39; => false,

     &#39;jsOptions&#39; => [

                  &#39;width&#39; => 100,

                  &#39;height&#39; => 40,

                  &#39;onUploadError&#39; => new JsExpression(<<<EOF

                  function(file, errorCode, errorMsg, errorString) {

                        console.log(&#39;The file &#39; + file.name + &#39; could not be uploaded: &#39; + errorString + errorCode + errorMsg);

                    }

EOF

                    ),

                    &#39;onUploadSuccess&#39; => 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 层

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

51

52

53

54

55

56

57

58

59

60

61

62

63

64

65

66

67

68

69

70

71

72

<?php

namespace \backend\controllers;

use xj\uploadify\UploadAction;

class TestController extends \yii\web\Controller

{

   public function actions() {

    return [

        &#39;s-upload&#39; => [

            &#39;class&#39; => UploadAction::className(),

            //磁盘目录

            &#39;basePath&#39; => &#39;@webroot/upload&#39;,

            //访问目录

            &#39;baseUrl&#39; => &#39;@web/upload&#39;,

            //防止跨站攻击

            &#39;enableCsrf&#39; => true, // default

            &#39;postFieldName&#39; => &#39;Filedata&#39;, // default

            //BEGIN METHOD

            &#39;format&#39; => [$this, &#39;methodName&#39;],

            //END METHOD

            //BEGIN CLOSURE BY-HASH

            //是否覆盖相同文件

            &#39;overwriteIfExist&#39; => true,

            //创建图片名称

            &#39;format&#39; => function (UploadAction $action) {

                $fileext = $action->uploadfile->getExtension();

                $filename = sha1_file($action->uploadfile->tempName);

                return "{$filename}.{$fileext}";

            },

             //想要多调用这个函数

            &#39;format&#39; => 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}";

            },

            */

            &#39;validateOptions&#39; => [

                &#39;extensions&#39; => [&#39;jpg&#39;, &#39;png&#39;], //后缀验证

                &#39;maxSize&#39; => 1 * 1024 * 1024, //上传大小限制

             ],

             //验证前处理

            &#39;beforeValidate&#39; => function (UploadAction $action) {

                //throw new Exception(&#39;test error&#39;);

                },

             //验证后处理

            &#39;afterValidate&#39; => function (UploadAction $action) {},

             //保存前处理

            &#39;beforeSave&#39; => function (UploadAction $action) {},

            //保存后处理

            &#39;afterSave&#39; => function (UploadAction $action) {

                //$action->output 返回给浏览器的数据

                //返回Url 图片返回的路径

                //$action->getWebUrl()

                //图片的名称

                //$action->getFilename();

                //保存图片的物理位置

                //$action->getSavePath();

                //输出                                

                //$action->output[&#39;fileUrl&#39;] = $action->getWebUrl();

                //$action->output[&#39;fileName&#39;] = $action->getFilename();

                //$action->output[&#39;filePath&#39;] = $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的详细内容。更多信息请关注PHP中文网其他相关文章!

相关标签:
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
最新问题
yii2怎样用mongodb做rbac
来自于 1970-01-01 08:00:00
0
0
0
yii2连接mongodb3.2.4出错
来自于 1970-01-01 08:00:00
0
0
0
php - yii2-ueditor-widget
来自于 1970-01-01 08:00:00
0
0
0
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板