我試圖將JPG(以及任何圖像)轉換爲PNG。我有一個HTML表單,可以很好地將圖像發佈到服務器上。我需要重命名該文件並將其轉換爲PNG。在我執行相關表數據庫插入操作後,在我的代碼中,我再次重命名文件以將記錄ID追加到文件名以確保其唯一性。PHP將POST圖像轉換爲PNG
我更多的是一個客觀的C程序員,然後PHP,所以我在這裏用這個代碼掙扎,我發現在其他問題似乎沒有爲我工作。
這裏是print_r($_FILES);
Array ([image] => Array ([name] => BBnL9Ho.jpg [type] => image/jpeg [tmp_name] => /tmp/phphhqHam [error] => 0 [size] => 1636))
所以,我想將其轉換爲PNG和重命名BBnL9Ho.jpg to image1.png
。我曾嘗試使用下面的代碼試過,但無濟於事:
$newfileName = imagepng(imagecreatefromjpeg($_FILES['image']['tmp_name']), "image1.png");
後來我做了相關的數據庫表的INSERT後,我再次更改名稱並附加相關的數據庫記錄的ID(我存儲在文件名單獨的表則由於一對多的關係形式的數據的其餘部分):
$fileName="$lastinsertID".$newfileName;
然後我插入名成正確地進入數據庫。然後我需要將文件移動到上傳目錄,我試圖這樣做:
move_uploaded_file("$fileName",$dir . $fileName);
這是我的問題所在。該文件不移動,當我檢查文件的屬性時,它似乎並沒有實際轉換文件。我用它來檢查類型:
$fileType = $_FILES["image"]["type"];
它仍然顯示它是JPG。我一定錯過了一些非常明顯的事情,但我希望得到一些幫助。
非常感謝。
哇,這太棒了!謝謝!我將致力於實施並與您取得聯繫。非常感謝!我可能需要幾天時間才能找到它。 – mreynol
@mreynol不客氣。讓我知道進展情況。 –
好吧,我能夠給它一個鏡頭,它得到了更多。它將圖像轉換爲PNG! :)。它還將新映像名稱存儲在數據庫中,但它已將目錄名稱附加到數據庫中的文件名稱上,並將其添加到我希望它移動到的位置。另外,它沒有將文件移動到我的$ dir位置。最後,我希望得到的圖像是(lastinsertID)image1.png(例如12345image1.png)。 – mreynol