2013-03-21 62 views
3

我创建了一个上传脚本,它也创建了一个可以正常工作的缩略图,但是现在我遇到了一个问题。当我上传一些图像时,Exif方向数据会自动旋转我网站上的图像。如何使用exif方向数据自动旋转图像使用php

我试着在网上搜索如何检查数据并将其旋转回来,如果有的话,但我不明白我的意思。

这里是我到目前为止的代码:

if(isset($_POST['submit'])) { 
     $allowedExts = array("jpg", "jpeg", "gif", "png", "JPG", "GIF"); 
     $extension = end(explode(".", strtolower($_FILES["file"]["name"]))); 
     if ((($_FILES["file"]["type"] == "image/gif") 
     || ($_FILES["file"]["type"] == "image/jpeg") 
     || ($_FILES["file"]["type"] == "image/png") 
     || ($_FILES["file"]["type"] == "image/pjpeg")) 
     && in_array($extension, $allowedExts)) { 
      if ($_FILES["file"]["error"] > 0) { 
       echo "Return Code: " . $_FILES["file"]["error"] . "<br>"; 
      } else { 

       $random_numer = rand(10000000, 99999999); 
       $newname1 = $random_numer . $_FILES["file"]["name"]; 
       $scramble = md5($newname1); 
       $extension = end(explode(".", $_FILES["file"]["name"])); 
       $final_name = $scramble . "." . $extension; 

       move_uploaded_file($_FILES["file"]["tmp_name"], "../img/gallery/" . $final_name); 
       create_thumbnail($final_name); 
       $stmt = $conn->prepare('INSERT INTO gallery (image) VALUES (:image)'); 
       $stmt->bindParam(':image', $final_name); 
       $stmt->execute(); 

       if ($stmt->rowCount() > 0) { 
        echo "<p class='success'>The Image has been added! 
        <a href='gallery.php'>Please click here to refresh</a></p>"; 
       } else { 
        echo "<p class='error'>The Image was not added, there was an error.</p>"; 
       } 

      } 
     } else { 
      echo "Invalid file"; 
     } 
    } 

我怎样才能使图像不转?

回答

5

您将不得不编写另一个自定义函数,因为没有办法告诉move_uploaded_file忽略EXIF数据,这很糟糕。

+0

你是一个安全的生活。花了我一段时间来让我的头转过来,但我终于做到了。再次感谢 – Ben 2013-03-21 23:13:48