Exemplo n.º 1
0
 /**
  * Lists all UserAvatar models.
  * @return mixed
  */
 public function actionIndex()
 {
     $user = Yii::$app->user->identity;
     //user model
     //上传头像
     $savePath = Yii::getAlias($this->_savePath);
     if (!is_dir($savePath)) {
         if (!FileHelper::createDirectory($savePath)) {
             throw new InvalidCallException("上传目录无法创建!");
         }
     }
     if (Yii::$app->request->isPost && !empty($_FILES)) {
         $extension = strtolower(pathinfo($_FILES['file']['name'], PATHINFO_EXTENSION));
         $fileName = $user->id . '_' . time() . rand(1, 10000) . '.' . $extension;
         Image::thumbnail($_FILES['file']['tmp_name'], 160, 160)->save($savePath . $fileName, ['quality' => 80]);
         if ($userAvatar = $this->findModel($user->id)) {
             //删除旧头像
             if (file_exists($savePath . $userAvatar->avatar) && strpos($userAvatar->avatar, 'default') === false) {
                 @unlink($savePath . $userAvatar->avatar);
             }
             //更新头像
             $userAvatar->avatar = $fileName;
             $userAvatar->update();
         } else {
             $userAvatar = new UserAvatar();
             $userAvatar->user_id = $user->id;
             $userAvatar->avatar = $fileName;
             $userAvatar->save();
         }
     }
     $avatar = '';
     if ($userAvatar = $this->findModel($user->id)) {
         $avatar = $userAvatar->avatar;
     }
     return $this->render('index', ['user' => $user, 'avatar' => $avatar]);
 }
Exemplo n.º 2
0
 /**
  * (string) actionCropAvatar : 点击头像的方式更新头像
  * @return string
  * @throws \Exception
  * @throws \yii\base\Exception
  */
 public function actionCropAvatar()
 {
     $user = Yii::$app->user->identity;
     //user model
     //处理回传数据
     if (Yii::$app->request->isPost) {
         //数据出入CropAvatar类处理
         $crop = new CropAvatar(Yii::$app->request->post('avatar_src'), Yii::$app->request->post('avatar_imgSavePath'), Yii::$app->request->post('avatar_data'), isset($_FILES['avatar_file']) ? $_FILES['avatar_file'] : null);
         $saveFileName = $crop->getSaveFileName();
         //取得新的文件名
         if ($saveFileName) {
             if ($userAvatar = $this->findModel($user->id)) {
                 $oldFileName = Yii::getAlias('@webroot' . Yii::$app->request->post('avatar_imgSavePath')) . $userAvatar->avatar;
                 //删除旧头像
                 if (file_exists($oldFileName) && strpos($userAvatar->avatar, 'default') === false) {
                     @unlink($oldFileName);
                 }
                 //更新头像
                 $userAvatar->avatar = $saveFileName;
                 $userAvatar->update();
             } else {
                 $userAvatar = new UserAvatar();
                 $userAvatar->user_id = $user->id;
                 $userAvatar->avatar = $saveFileName;
                 $userAvatar->save();
             }
         }
         $response = array('state' => 200, 'message' => $crop->getMsg(), 'result' => $crop->getResult(), 'saveFileName' => $saveFileName);
         return json_encode($response);
     }
     $avatar = '';
     if ($userAvatar = $this->findModel($user->id)) {
         $avatar = $userAvatar->avatar;
     }
     return $this->render('_crop_avatar', ['user' => $user, 'avatar' => $avatar]);
 }