Ejemplo n.º 1
0
 public function changeProfileImageAction()
 {
     global $TNB_GLOBALS;
     $data = $_POST;
     $token = isset($data['TOKEN']) ? trim($data['TOKEN']) : null;
     if (!$token) {
         return ['STATUS_CODE' => STATUS_CODE_BAD_REQUEST, 'DATA' => buckys_api_get_error_result('Api token should not be blank')];
     }
     if (!($userID = BuckysUsersToken::checkTokenValidity($token, "api"))) {
         return ['STATUS_CODE' => STATUS_CODE_UNAUTHORIZED, 'DATA' => buckys_api_get_error_result('Api token is not valid.')];
     }
     //Upload photo if it is image type
     $tempFile = $_FILES['image']['tmp_name'];
     $targetPath = DIR_FS_PHOTO . "tmp";
     if (!is_dir($targetPath)) {
         mkdir($targetPath, 0777);
         //Create Index file
         $fp = fopen($targetPath . "/index.html", "w");
         fclose($fp);
     }
     // Validate the file type
     $fileParts = pathinfo($_FILES['image']['name']);
     //Check the file extension
     if (in_array(strtolower($fileParts['extension']), $TNB_GLOBALS['imageTypes'])) {
         //Check Image Size
         list($width, $height, $type, $attr) = getimagesize($tempFile);
         //Check Image Type
         if (!in_array($type, [IMAGETYPE_GIF, IMAGETYPE_JPEG, IMAGETYPE_JPEG2000, IMAGETYPE_PNG])) {
             return ['STATUS_CODE' => STATUS_CODE_OK, 'DATA' => buckys_api_get_error_result(MSG_INVALID_PHOTO_TYPE)];
         }
         if ($width * $height > MAX_IMAGE_WIDTH * MAX_IMAGE_HEIGHT) {
             return ['STATUS_CODE' => STATUS_CODE_OK, 'DATA' => buckys_api_get_error_result(MSG_PHOTO_MAX_SIZE_ERROR)];
         } else {
             $targetFileName = md5(uniqid()) . "." . $fileParts['extension'];
             $targetFile = $targetPath . '/' . $targetFileName;
             move_uploaded_file($tempFile, $targetFile);
             $data['file'] = $targetFileName;
         }
     } else {
         return ['STATUS_CODE' => STATUS_CODE_OK, 'DATA' => buckys_api_get_error_result(MSG_INVALID_PHOTO_TYPE)];
     }
     if (BuckysUser::updateUserProfileThumbnail($userID, $data['file'])) {
         //Success
         $message = buckys_get_pure_messages();
         return ['STATUS_CODE' => STATUS_CODE_OK, 'DATA' => ['STATUS' => 'SUCCESS', 'MESSAGE' => $message]];
     } else {
         $error = buckys_get_pure_messages();
         return ['STATUS_CODE' => STATUS_CODE_OK, 'DATA' => buckys_api_get_error_result($error)];
     }
 }