我想實現一個小的更新配置文件圖片窗體。上傳圖片失敗的PHP後端
<form method="post" action="<?php echo $filename;?>" name="change_picture_form" id="change_picture_form" enctype="multipart/form-data">
<input type="hidden" name="action" value="change_picture" />
<input type="file" name="new_user_picture">
<input type="submit" class="submitButton" value="Save Changes"/>
</form>
目標php文件具有下面的代碼:
echo $_FILES['new_user_picture']['size']." ";
echo $_FILES['new_user_picture']['tmp_name']." ";
echo $_FILES['new_user_picture']['name']." ";
echo $_FILES['new_user_picture']['error']." ";
echo $_FILES['new_user_picture']['type']." ";
$picture_uploaded = $_FILES["new_user_picture"]["tmp_name"];
if(is_uploaded_file($picture_uploaded)) {
$imagesize = getimagesize($picture_uploaded);
switch($imagesize[2]) {
case IMAGETYPE_PNG:
$extension = '.png';
echo "<script>console.log('Reached here!!')</script>";
try {
$image_original = imagecreatefrompng($picture_uploaded);
if (!$image_original)
echo '<script>console.log("not image original")</script>';
} catch(Exception $e) {
echo "<script>console.log('Error!!')</script>";
}
break;
case IMAGETYPE_JPEG: ....
...
}
}
在這裏,我有許多的圖像類型相似的代碼。我通過嘗試上傳png圖像來測試此代碼。前5個回顯語句顯示預期的結果 - 大小,零的錯誤值,名稱,類型和臨時名稱。
我得到「到達這裏!!」在我的控制檯上。然而, imagecreatefrompng
似乎無聲地崩潰。不知何故Try-catch似乎沒有發現錯誤。
幫助?謝謝!
你是什麼意思'默默地崩潰'你在日誌或屏幕上出現任何錯誤? – Jakub
我想你不能直接轉換到臨時上傳的文件,你怎麼做move_uploaded_file()然後執行imagecreatefrom png? – ajreal
@Navneet代碼的工作原理如下。我沒有看到任何錯誤。你將獲得'imagecreatefrompng()'函數的資源ID,請參閱http://php.net/manual/en/function.imagecreatefrompng.php,即爲什麼你沒有得到不是原始圖像。 –