2013-03-21 64 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