簡體   English   中英

在php后端上傳圖片失敗

[英]Uploading image failing on php back-end

我正在嘗試實現一個小的更新配置文件圖片表單。

<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個echo語句顯示預期結果-大小,錯誤值為零,名稱,類型和臨時名稱。

我得到“到達這里!!” 在我的控制台上。 但是, imagecreatefrompng似乎崩潰了。 嘗試捕獲似乎無法捕獲該錯誤。

救命? 謝謝!

我還沒有永遠用PHP處理文件上傳,但是以下行是否有可能:

$picture_uploaded = $_FILES["new_user_picture"]["tmp_name"]

應該

$picture_uploaded = $_FILES["new_user_picture"]嗎?

第一行應該是為您提供上載文件的文件名,而第二行(上面的編輯行)應該是對文件本身的引用。

HTH。

編輯:好吧,我的答案是不正確的...這有幫助嗎? http://www.php.net/manual/zh/function.imagecreatefromstring.php 用戶注釋/注釋中有一個幫助程序功能,可以簡化您的工作

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM