2011-07-01 71 views
3

我正在上傳一個圖像(jpg)並使用PHP GD庫進行操作的項目。我知道我可以使用GD函數來編輯圖像資源(從imagecreatefromjpeg()創建),但我想知道是否有一種方法可以直接使用GD庫中上傳的$ _FILES數組中的文件。我想到的一個解決方案是保存上傳的文件,將其推入imagecreatefromjpeg,然後將其刪除。PHP GD庫和上傳的文件

雖然這看起來很狡猾,有沒有更高效的解決方案?

我對PHP還是有點新,所以我不確定文件如何存儲在$ _FILES數組中。我希望我在這裏有意義。謝謝。

+3

你可以使用創建的臨時文件,而不需要保存 – Ibu

+0

^^^這應該是答案吧:) – Scuzzy

回答

7

你可以簡單地這樣做:

$img = imagecreatefromjpeg($_FILES['image']['tmp_name']); 
// do gd operations on $img 
imagejpeg($img, '/path/to/target'); 

你必須以某種形式或其他使用imagecreatefrom,並且可以直接對上傳的文件使用它。然後使用imagejpeg保存操作結果。上傳的文件tmp_name會自動丟棄。

話雖如此,你應該保存原來的地方。隨時可以使用它總是很好的。

+1

希望我可以upvote你兩次。首先是直接從臨時文件讀取正確的答案,並再次建議在某處存儲原始文件。這樣做幾乎總是值得的。 – timdev

+0

啊我在想這些方面的東西。謝謝! – itsachen