ошибка изменения размера изображения php - PullRequest
1 голос
/ 04 апреля 2011

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

Предупреждение: imagecreatefromjpeg () [function.imagecreatefromjpeg]: gd-jpeg, libjpeg: исправимая ошибка: преждевременный конец файла JPEG в /home/rumdood/lib/photograph.php в строке 309

Предупреждение: imagecreatefromjpeg () [function.imagecreatefromjpeg]: '/home/rumdood/public_html/uploads/13018946005603.jpg' не является допустимым файлом JPEG в /home/rumdood/lib/photograph.php строке 309

Предупреждение: imagecopyresampled (): предоставленный аргумент не является допустимым ресурсом Image в /home/rumdood/lib/photograph.php строке 410

Предупреждение: невозможно изменить информацию заголовка - заголовки уже отправлены (вывод начался с /home/rumdood/lib/photograph.php:309) в /home/rumdood/application.php в строке 22 * ​​1010 *

И изображение не изменяется. Последняя ошибка связана с функцией заголовка.

Строка 309 похожа на это

$this->image['render'] = imagecreatefromjpeg( $this->s_image );

Строка 410 похожа на это

imagecopyresampled( $this->image['composite'], $this->image['render'],
                     0, 0, 0, 0, $new_width, $new_height,
                     $this->image['width'], $this->image['height'] );

И моя версия php PHP Version 5.2.6

Мой БЖ от phpinfo

GD Support          enabled
GD Version          bundled (2.0.34 compatible)
FreeType Support    enabled
FreeType Linkage    with freetype
FreeType Version    2.1.9
GIF Read Support    enabled
GIF Create Support  enabled
JPG Support         enabled
PNG Support         enabled
WBMP Support        enabled
XPM Support         enabled
XBM Support         enabled

Ответы [ 3 ]

4 голосов
/ 04 апреля 2011

Как предложено @ charles . Обе ошибки говорят сами за себя

проверьте правильность изображения из

 if($_FILES["userPicture"]["error"] == 0) {
 // File was uploaded ok, so it's ok to proceed with the filetype check.
 $uploaded_type = exif_imagetype($_FILES["userPicture"]["tmp_name"]);
 // What we have now is a number representing our file type.

 switch($uploaded_type) {
    case "1":
        $uploaded_type = "gif";
    break;
    case "2":
        $uploaded_type = "jpg";
    break;
    case "3":
        $uploaded_type = "png";
    break;
}

}


Для imagecreatefromjpeg(): gd-jpeg, libjpeg: исправимая ошибка: преждевременное завершение JPEG

это была проблема с php 5 и gd2.Вот как это исправить

  • php 4: никаких действий не требуется, все должно работать нормально
  • php 5.0 - 5.1.2 = Обновление до последней версии php 5
  • php5.1.3 - current = объявить эту переменную в вашем файле перед вызовом imagecreatefromjpeg()
  • ini_set ('gd.jpeg_ignore_warning', 1);

для Невозможно изменить информацию заголовка записать ob_start(); вверху страницы

Ссылка

3 голосов
/ 04 апреля 2011

Ошибки,

libjpeg: исправимая ошибка: преждевременный конец файла JPEG

и

... недействительный файл JPEG

довольно понятен.Изображение, с которым вы пытаетесь работать, не распознается соответствующим анализатором JPEG как действительное.Весьма вероятно, что файл поврежден или обрезан.

Это проблема самого изображения, а не вашего кода.Ваш код выглядит хорошо.

2 голосов
/ 04 апреля 2011

Похоже, изображение, которое вы пытаетесь загрузить, не соответствует действительности JPG (возможно, кто-то только что переименовал или что-то в этом роде). Попробуйте восстановить его с помощью некоторой программы для работы с изображениями (например, GIMP). Или, если вы загрузили его на сервер, возможно, произошла ошибка при загрузке. Также, если вес файла превышает один размер файла на сервере, он может быть жестоко обрезан.

Warning: Cannot modify header information - headers already sent by (output started at /home/rumdood/lib/photograph.php:309) in /home/rumdood/application.php on line 22

Вы должны отправить заголовок в начале кода. перед тегом <?php не должно быть пробела.

...