if ($_FILES["ufile"]["type"] [$i] == "image/jpeg" || $_FILES["ufile"]["type"] [$i] == "image/jpg" || $_FILES["ufile"]["type"] [$i] == "image/png" || $_FILES["ufile"]["type"] [$i] == "image/gif")
{
if ($_FILES["ufile"]["type"] [$i] == "image/png" || $_FILES["ufile"]["type"] [$i] == "image/gif" || $_FILES["ufile"]["type"] [$i] == "image/jpeg" || $_FILES["ufile"]["type"] [$i] == "image/jpg")
{
$file=$_FILES["ufile"]["tmp_name"];
list($width, $height) = getimagesize($file);
$new_width = 200;
$new_height = 500;
$dst_image = imagecreatetruecolor($new_width,$new_height);
$src_image = imagecreatefromjpeg($_FILES["ufile"]["tmp_name"]);
imagecopyresized ($dst_image, $src_image, 0, 0, 0, 0, $new_width, $new_height, $width, $height);
imagejpeg(imagecreatefromstring(file_get_contents($dst_image)), "convert.jpg");
$actual_image_name = $name[$i].'.'.'jpg';
move_uploaded_file("convert.jpg", $path.$actual_image_name);
}
}
回答
您完全錯誤使用GD。 $dst_image
是一個GD圖像句柄。它是而不是的一個文件。所以... file_get_contents()
將返回布爾值FALSE,因爲您試圖從而不是獲取文件名。 imagecreatefromstring()
將返回布爾值false,因爲布爾值false是而不是圖像字符串,而imagejpeg()
將返回布爾值FALSE,因爲您沒有將它傳遞給GD句柄。
總之,你的代碼可以做一些改進。你簡單地認爲什麼都不會出錯,永遠不會檢查失敗,並且這些失敗通過代碼向前傳播。
所有你真正需要的是
image_jpeg($dst_image, 'convert.jpg');
然後你move_uploaded_file
將也失敗,因爲「convert.jpg」不是上傳的文件。這是你在服務器上創建的一個文件。它可能基於上傳的文件,但其本身是而不是上傳的文件。爲什麼不只是
image_jpeg($dst_image, "$path/$actual_image_name");
不工作我迷路了 –
我認爲這個答案中的評論有點尖銳,所以我使它更柔和,同時希望傳達相同的含義。 OP將會很久不見了,但我認爲對未來的讀者也是有益的,這些讀者可能也是初學者的開發者! – halfer
- 1. 上傳圖片的尺寸
- 2. 相同尺寸的圖片,但顯示不同!爲什麼?
- 3. 標準尺寸的上傳圖片(PHP)
- 4. 調整上傳圖片的尺寸
- 5. 上傳時調整圖片的尺寸
- 6. 查看上傳的圖片尺寸
- 7. 調整尺寸的woocommerce圖片尺寸,但產品包裝盒仍然太大
- 8. 上傳WordPresspress最小圖片尺寸
- 9. 圖片上傳有多種尺寸
- 10. 上傳時縮小圖片尺寸
- 11. PHP正確尺寸上傳圖片
- 12. 上傳時更改圖片尺寸
- 13. 大尺寸PHP上傳圖片
- 14. 處理上傳不同尺寸的圖片
- 15. 尺寸相同的多張照片
- 16. JPEG壓縮的尺寸與原來的尺寸相同
- 17. 顯示的圖像尺寸與所採用的尺寸相同?
- 18. 試圖使圖片具有可伸縮性,但也具有相同的尺寸
- 19. 如何製作不同尺寸的單張圖片/尺寸
- 20. 不同的卡片尺寸
- 21. JTextArea中具有相同的參數,但不相同的尺寸
- 22. 在HTML中的兩個尺寸相同的圖片
- 23. 設置UIButton的框架,但保持圖像相同的尺寸
- 24. xml中的相同圖像尺寸 - 設備上的不同
- 25. GridLayoutManager相同的圖像尺寸
- 26. 在RenderTransfrom屬性上應用ScaleTransfrom後,新尺寸仍然相同
- 27. Android Studio不同設備上的不同圖片尺寸
- 28. 我調整了上傳圖片的大小,但它仍然有很大的尺寸
- 29. 所有圖片都是相同的尺寸
- 30. Android中的圖片尺寸
問題隱藏在代碼中的任何地方?我需要搜索嗎? – Rizier123
**絕不**使用'['type']'字段進行驗證。這是微不足道的。由於您使用的是getimagesize(),只需使用它的'['mime']'參數來查看文件的真實含義。 –
首先移動上傳的文件,然後應用尺寸變化 – Nick