home
/
aioutajg
/
public_html
/
resizer
/
Go to Home Directory
+
Upload
Create File
root@0UT1S:~$
Execute
By Order of Mr.0UT1S
[DIR] ..
N/A
[DIR] assets
N/A
[DIR] parts
N/A
delete.php
501 bytes
Rename
Delete
download.php
768 bytes
Rename
Delete
index.php
6.64 KB
Rename
Delete
resize.php
4.47 KB
Rename
Delete
<?php if ($_SERVER['REQUEST_METHOD'] === 'POST') { $uploadDir = __DIR__ . '/../uploads/'; $allowedExtensions = ['png', 'jpg', 'jpeg', 'webp', 'heic', 'gif', 'svg']; // Validate uploaded file if (!isset($_FILES['image']) || $_FILES['image']['error'] !== UPLOAD_ERR_OK) { echo json_encode(['error' => 'File upload failed.']); exit; } $imageInfo = getimagesize($_FILES['image']['tmp_name']); if (!$imageInfo) { echo json_encode(['error' => 'Invalid image file.']); exit; } $originalExtension = strtolower(pathinfo($_FILES['image']['name'], PATHINFO_EXTENSION)); if (!in_array($originalExtension, $allowedExtensions)) { echo json_encode(['error' => 'Unsupported file format.']); exit; } // Generate unique filenames $originalFilename = uniqid('original_', true) . '.' . $originalExtension; $convertedFilename = uniqid('converted_', true) . '.' . $originalExtension; // Save original file if (!move_uploaded_file($_FILES['image']['tmp_name'], $uploadDir . $originalFilename)) { echo json_encode(['error' => 'Failed to save the uploaded file.']); exit; } // Get dimensions or social media size $width = $_POST['width'] ?? null; $height = $_POST['height'] ?? null; $socialMediaSize = $_POST['socialMediaSize'] ?? null; // Predefined social media sizes $sizes = [ 'facebook_story' => [1080, 1920], 'facebook_vertical_post' => [1080, 1350], 'facebook_shared_image' => [1200, 630], 'facebook_page_cover' => [820, 312], 'facebook_event_cover' => [1920, 1080], 'facebook_group_cover' => [1640, 859], 'facebook_profile_image' => [180, 180], 'instagram_story' => [1080, 1920], 'instagram_vertical_post' => [1080, 1350], 'instagram_square_post' => [1080, 1080], 'instagram_horizontal_post' => [1080, 566], 'twitter_share_image' => [1200, 675], 'twitter_link_with_image' => [800, 418], 'twitter_header' => [1500, 500], 'youtube_channel_icon' => [800, 800], 'youtube_channel_art' => [2560, 1440], ]; if ($socialMediaSize) { if (!isset($sizes[$socialMediaSize])) { echo json_encode(['error' => 'Invalid social media size.']); unlink($uploadDir . $originalFilename); exit; } list($width, $height) = $sizes[$socialMediaSize]; } // Validate dimensions if (!$width || !$height) { echo json_encode(['error' => 'Invalid dimensions.']); unlink($uploadDir . $originalFilename); exit; } // Resize image using GD Library try { $sourcePath = $uploadDir . $originalFilename; $image = imagecreatefromstring(file_get_contents($sourcePath)); if (!$image) { throw new Exception('Failed to read the image.'); } $originalWidth = imagesx($image); $originalHeight = imagesy($image); $newImage = imagecreatetruecolor($width, $height); imagecopyresampled( $newImage, $image, 0, 0, 0, 0, $width, $height, $originalWidth, $originalHeight ); // Save resized image $targetPath = $uploadDir . $convertedFilename; switch ($originalExtension) { case 'jpg': case 'jpeg': imagejpeg($newImage, $targetPath, 90); break; case 'png': imagepng($newImage, $targetPath); break; case 'webp': imagewebp($newImage, $targetPath); break; case 'gif': imagegif($newImage, $targetPath); break; default: echo json_encode(['error' => 'Unsupported format for resizing.']); unlink($uploadDir . $originalFilename); exit; } // Cleanup imagedestroy($image); imagedestroy($newImage); unlink($uploadDir . $originalFilename); echo json_encode(['success' => true, 'file' => $convertedFilename]); } catch (Exception $e) { echo json_encode(['error' => $e->getMessage()]); unlink($uploadDir . $originalFilename); } } else { echo json_encode(['error' => 'Invalid request method.']); } ?>
Save