Niels
Niels

Reputation: 1006

Images aren't rotating

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

Answers (1)

Niels
Niels

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

Related Questions