Ошибка загрузки изображения на PHP-сервер - PullRequest
0 голосов
/ 06 декабря 2011

Я пытаюсь реализовать небольшую форму обновления профиля изображения.

<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 как-то не похоже на ошибку.

Помощь? Спасибо!

1 Ответ

0 голосов
/ 06 декабря 2011

Я не обрабатывал загрузки файлов в 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.В примечаниях / комментариях пользователя есть вспомогательная функция, которая может упростить вашу работу

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...