2011-03-24 22 views
0

我有一個窗體上傳圖片文件,但我想包括一個選項來旋轉圖像在相同的形式。imagerotate選項之前或之後移動上傳在PHP

什麼我不知道,應該保存它之前旋轉圖像,或保存它,打開它,旋轉它,然後再次保存。林不知道什麼是實現這一目標的最佳方法。使用的代碼如下:

$imagename = uniqid().".jpg"; 
if (file_exists("upload/" . $imagename)) 
    { 
     //echo $_FILES["file"]["name"] . " already exists. "; 
    } else { 
     // Rotate image here before saving? 
     move_uploaded_file($_FILES["file"]["tmp_name"],"upload/" . $imagename); 
     // Or open/rotate/resave image here? 
} 

回答

2

總是先移動圖像,然後對其進行操作。 PHP中存在安全限制,使得系統管理員可以說只有move_uploaded_file()函數能夠訪問臨時位置中的上載文件,而沒有其他功能。

所以,先移動它,然後操作。否則,您的腳本將無法在啓用此安全性的服務器上運行。

1

基本上當圖片上傳時,它已經被保存到臨時位置。所以無論你如何打開,旋轉並保存它。如果它沒有任何用途將其保存到本地文件夾中,我會建議只打開臨時文件,旋轉並保存它。

2

在我看來,這裏沒有真正正確或錯誤的答案。不過,我可以看到你遇到了試圖對tmp文件執行圖像操作(文件夾/文件權限等)的問題。

因此,您應該首先移動圖像,然後在移動後對其執行任何圖像操作。這將有助於保證您擁有執行圖像操作的適當權限。

相關問題