示例#1
0
 /**
 * 修改头像
 * @access public
 * @return void
 * @example
 <pre>
 /index.php?m=native&c=user&a=doAvatar <br>
 post: securityKey <br>
 postdata: Filename <br>
 curl -X POST -F 'Filename=@icon1.jpg' -F 'csrf_token=aaa' -F '_json=1' -F 'securityKey=xx' -b 'csrf_token=aaa' '/index.php?m=native&c=user&a=doAvatar'
 </pre>
 */
 public function doAvatarAction()
 {
     $this->checkUserSessionValid();
     //
     Wind::import('WSRV:upload.action.WindidAvatarUpload');
     Wind::import('LIB:upload.PwUpload');
     $bhv = new WindidAvatarUpload($this->uid);
     $upload = new PwUpload($bhv);
     if (($result = $upload->check()) === true) {
         foreach ($_FILES as $key => $value) {
             if (!PwUpload::isUploadedFile($value['tmp_name']) || !$bhv->allowType($key)) {
                 continue;
             }
         }
         $file = new PwUploadFile($key, $value);
         if (($result = $upload->checkFile($file)) !== true) {
             $this->showError($result->getError());
         }
         $file->filename = $upload->filterFileName($bhv->getSaveName($file));
         $file->savedir = $bhv->getSaveDir($file);
         $file->store = Wind::getComponent($bhv->isLocal ? 'localStorage' : 'storage');
         $file->source = str_replace('attachment', 'windid/attachment', $file->store->getAbsolutePath($file->filename, $file->savedir));
         //
         if (!PwUpload::moveUploadedFile($value['tmp_name'], $file->source)) {
             $this->showError('upload.fail');
         }
         $image = new PwImage($file->source);
         if ($bhv->allowThumb()) {
             $thumbInfo = $bhv->getThumbInfo($file->filename, $file->savedir);
             foreach ($thumbInfo as $key => $value) {
                 $thumburl = $file->store->getAbsolutePath($value[0], $value[1]);
                 $thumburl = str_replace('attachment', 'windid/attachment', $thumburl);
                 //
                 $result = $image->makeThumb($thumburl, $value[2], $value[3], $quality, $value[4], $value[5]);
                 if ($result === true && $image->filename != $thumburl) {
                     $ts = $image->getThumb();
                 }
             }
         }
         $this->showMessage('success');
     }
     $this->showMessage('operate.fail');
 }