Reputation: 1006
Alright. I've been looking around for a solution for some time now but I cannot seem to figure out why images aren't rotating on my Debian server using PHP.
$content_id = escapeQuery($_GET['id']); // escapeQuery is a function i created that removes all the nasty SQL injection methods
$sql = mysqli_query($mysqli, "SELECT * FROM images WHERE id = '$content_id'");
$data_array[] = $sql->fetch_assoc();
$image_url = $data_array[0]['file_name'];
$file_extension = explode('.', $image_url);
if (isset($_GET['rotate']) && !empty($_GET['rotate'])) {
$rotate_images = array('original', 'thumbnail', 'resized');
foreach ($rotate_images as $value) {
$filename = '/var/www/sitename.com/images/'.$value.'/' . $image_url;
$degrees = 90;
if ($file_extension[1] === 'jpg' or $file_extension[1] === 'jpeg') {
$source = imagecreatefromjpeg($filename);
$rotate = imagerotate($source, $degrees, 0);
imagejpeg($rotate);
} elseif ($file_extension[1] === 'png') {
$source = imagecreatefrompng($filename);
$rotate = imagerotate($source, $degrees, 0);
imagepng($rotate);
} elseif ($file_extension[1] === 'webp') {
$source = imagecreatefromwebp($filename);
$rotate = imagerotate($source, $degrees, 0);
imagewebp($rotate);
} elseif ($file_extension[1] === 'gif') {
$source = imagecreatefromgif($filename);
$rotate = imagerotate($source, $degrees, 0);
imagegif($rotate);
} elseif ($file_extension[1] === 'bmp') {
$source = imagecreatefrombmp($filename);
$rotate = imagerotate($source, $degrees, 0);
imagebmp($rotate);
} else {
// some action here
}
}
imagedestroy($rotate);
// some action here
exit;
}
What I have tried to fix it:
Upvotes: 0
Views: 59
Reputation: 1006
I ended up fixing the issue myself.
It wasn't super clearly documented but to save the image to the server you have to define the exact location of the image in the imagejpeg function like so imagejpeg($rotate, $destination);
Hope this helps anyone in the future :)
Upvotes: 0