上传图片在php后端失败

时间:2011-12-06 06:06:45

标签: php forms

我正在尝试实现一个小的更新配置文件pic表单。

<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似乎无声地崩溃。 Try-catch不知何故似乎没有发现错误。

帮助?谢谢!

1 个答案:

答案 0 :(得分:0)

我还没有永远处理PHP中的文件上传,但这行可能是:

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

应该是

$picture_uploaded = $_FILES["new_user_picture"]

第一行应该是获取上传文件的文件名,而第二行(上面编辑过的行)应该是对文件本身的引用。

HTH。

编辑:好吧,看看我的答案是不正确的......这有帮助吗? http://www.php.net/manual/en/function.imagecreatefromstring.php 。用户注释/注释中有一个辅助函数,可以简化您正在做的事情