我的yii2-uploadify-widget插件不是用composer下载的,实验代码都是官网上提供的,version2,和example2
controller中的代码:
public function actions()
    {
        return [
            's-upload' => [
                'class' => UploadAction::className(),
               'basePath' => '@webroot/upload', //存放的磁盘目录
               'baseUrl' => '@web/upload', //网站访问 url
                '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}";
                },
                //END CLOSURE BY-HASH
                //BEGIN CLOSURE BY TIME
                
                '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}";
                },
                
                //END CLOSURE BY TIME
                'validateOptions' => [
                    'extensions' => ['jpg', 'png'],
                    'maxSize' => 1 * 1024 * 1024, //file size
                ],
                'beforeValidate' => function (UploadAction $action) {
                    //throw new Exception('test error');
                },
                'afterValidate' => function (UploadAction $action) {},
                'beforeSave' => function (UploadAction $action) {},
                'afterSave' => function (UploadAction $action) {
                    //$action->output
                    $action->output['fileUrl'] = $action->getWebUrl();
                    $action->output['fileName'] = $action->getFilename(); // "image/yyyymmddtimerand.jpg"
                    //www.smister.com/upload/images/aa.jpg
                   // $action->getWebUrl(); //  "baseUrl + filename, /upload/image/yyyymmddtimerand.jpg"
                    $action->output['filePath'] = $action->getSavePath(); // "/var/www/htdocs/upload/image/yyyymmddtimerand.jpg"
                },
            ],
        ];
    }
index.php视图代码
//外部TAG
echo Html::fileInput('test', NULL, ['id' => 'test']);
echo Uploadify::widget([
    'url' => \yii\helpers\Url::to(['s-upload']),
    'id' => 'test',
    'csrf' => true,
    'renderTag' => false,
    'jsOptions' => [
        'width' => 120,
        '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
),
    ]
]);

解决方案 »

  1.   

    不怕师兄你笑话,我翻遍了服务器上该项目的每一个文件,,除了每一次上传,会在debug目录下添加一个.data的文件之外,没有任何变化。我是直接下载的插件,不像其他网站上说的,用composer更新。这是该插件的下载地址。https://github.com/xjflyttp/yii2-uploadify-widget
      

  2.   

    谢谢,我试过路径了,还是没有效果,不过当我把代码中的
    'beforeValidate' => function (UploadAction $action) {
                       throw new Exception('test error');
                    },
    注释去掉之后会抛出 1_Homepage_06.jpg (3KB) - HTTP Error (500),错误。后来,我想通过composer来更新我的框架,下载安装composer作曲家成功,
    但Composer Asset插件却安装不了,每次输入composer.phar global require "fxp/composer-asset-plugin:^1.2.0"命令回车之后,submit3都会自动打开一个composer.phar文件
    也就是这个原因,我的yii2高级模版都是通过手动安装的
      

  3.   

    上面的图片发错了谢谢,我试过路径了,还是没有效果,不过当我把代码中的
    'beforeValidate' => function (UploadAction $action) {
                       throw new Exception('test error');
                    },
    注释去掉之后会抛出 1_Homepage_06.jpg (3KB) - HTTP Error (500),错误。后来,我想通过composer来更新我的框架,下载安装composer作曲家成功,
    但Composer Asset插件却安装不了,每次输入composer.phar global require "fxp/composer-asset-plugin:^1.2.0"命令回车之后,submit3都会自动打开一个composer.phar文件
    也就是这个原因,我的yii2高级模版都是通过手动安装的,如果用办法成功安装Composer Asset插件,然后通过composer更新yii2框架也是可以直接解决上传问题的