示例#1
0
 public function init()
 {
     //仅删除图片操作
     if (Yii::$app->getRequest()->get('action', '') == 'del') {
         if (Yii::$app->getRequest()->get('filename', false)) {
             $fileName = Yii::$app->getRequest()->get('filename');
             $path = Yii::getAlias('@webroot') . $fileName;
             if (is_file($path) && unlink($path)) {
                 @unlink(str_replace('origin/', '', $path));
                 //尝试删除缓存
                 Json::encode(['status' => 0, 'msg' => Yii::t('uploadify', 'Delete File Success')]);
             }
         }
         Yii::$app->end();
     }
     if (Yii::$app->getRequest()->isPost) {
         $this->initCsrf();
         //临时关闭csrf并校验session id(客户端组件不支持)
         //风险控制
         switch (false) {
             case $this->checkTimeOut():
                 echo Yii::t('uploadify', 'Upload timeout,Please refresh Page!');
                 break;
             case $this->checkSalt():
                 echo Yii::t('uploadify', 'Salt no pass,Invalid Data!');
                 break;
             case $this->checkSession():
                 echo Yii::t('uploadify', 'Session no pass,Invalid Data!');
                 break;
             default:
                 //开始上传
                 //Yii::$app->getRequest()->post('iswatermark')//水印
                 $file = UploadedFile::getInstanceByName($this->fileData);
                 //uploadify一个一个请求,一次返回的一个文件
                 $result = General::uploadToWebFilePath([$file], Yii::$app->getRequest()->post('dir'));
                 //                     $this->log($result);exit;
                 if (!empty($result['error'])) {
                     echo $result['error'];
                     //Json::encode(['status'=>0, 'msg'=>$result['error']]);
                 } else {
                     echo str_replace('\\', '/', $result[0]);
                     //调试
                     //                         $this->log($pathInfo);
                 }
                 //                     echo $pathInfo;
                 //Json::encode(['status'=>0, 'msg'=>$pathInfo]);
         }
         Yii::$app->end();
     }
     parent::init();
 }