diff --git a/RestControllers/postsController.php b/RestControllers/postsController.php index 025b75f..58134e8 100644 --- a/RestControllers/postsController.php +++ b/RestControllers/postsController.php @@ -154,21 +154,13 @@ class postsController { if(!check_post_file("image")) Rest_fatal_error(400, "An error occured while receiving image !"); - //Generate target file name - $target_userdata_folder = prepareFileCreation(userID, "imgpost"); - $target_file_path = $target_userdata_folder.generateNewFileName(path_user_data($target_userdata_folder, true), "png"); - $target_file_sys_path = path_user_data($target_file_path, true); - - //Try to resize, convert image and put it in its new location - if(!reduce_image($_FILES['image']["tmp_name"], $target_file_sys_path, 2000, 2000, "image/png")){ - //Returns error - Rest_fatal_error(500, "Couldn't resize sent image !"); - } + //Save post image + $file_path = save_post_image("image", userID, "imgpost", 2000, 2000); //Save image information - $file_type = "image/png"; - $file_size = filesize($target_file_sys_path); - $file_path = $target_file_path; + $file_sys_path = path_user_data($file_path, true); + $file_type = mime_content_type($file_sys_path); + $file_size = filesize($file_sys_path); } //For YouTube posts diff --git a/functions/requests.php b/functions/requests.php index 1430cf7..6716c60 100644 --- a/functions/requests.php +++ b/functions/requests.php @@ -417,4 +417,31 @@ function getPostContent($name){ //Return new content return $content; +} + +/** + * Save an image in user data directory from a POST request + * + * @param string $fieldName The name of the POST field + * @param int $userID The ID of the user making the request + * @param string $folder The target folder in the user data directory + * @param int $maxw The maximum width of the image + * @param int $maxh The maximum height of the image + * @return string The path of the image (quit the script in case of failure) + */ +function save_post_image(string $fieldName, int $userID, string $folder, int $maxw, int $maxh) : string { + + $target_userdata_folder = prepareFileCreation($userID, $folder); + $target_file_path = $target_userdata_folder.generateNewFileName(path_user_data($target_userdata_folder, true), "png"); + $target_file_sys_path = path_user_data($target_file_path, true); + + //Try to resize, convert image and put it in its new location + if(!reduce_image($_FILES[$fieldName]["tmp_name"], $target_file_sys_path, $maxw, $maxh, "image/png")){ + //Returns error + Rest_fatal_error(500, "Couldn't resize sent image !"); + } + + //Return image path + return $target_file_path; + } \ No newline at end of file