Ошибки при ресайзе больших картинок

Тема в разделе "PHP", создана пользователем Orbit, 19 окт 2009.

Статус темы:
Закрыта.
Модераторы: latteo
  1. Orbit

    Orbit Постоялец

    Регистр.:
    3 апр 2007
    Сообщения:
    145
    Симпатии:
    74
    Картинка грузится через форму и ресайзится, при этом если картинка слишком большая, видимо не хватает памяти и выходит просто белый лист в браузере. Подскажите, можно ли сделать, чтобы выходило не чистое поле, а какое нибудь сообщение об ошибке?
     
  2. Sanuch

    Sanuch

    Регистр.:
    25 май 2009
    Сообщения:
    207
    Симпатии:
    70
    можно попробывать обернуть методы по изменению размера изображения try, catch
     
  3. t0wer

    t0wer BlackHerald

    Регистр.:
    24 июн 2008
    Сообщения:
    733
    Симпатии:
    422
    1) нужно в скрипте включить все ошибки (и/или)
    - в коде скрипта:
    PHP:
    error_reporting(7);
    - в php.ini:
    Код:
    error_reporting = E_ALL
    - если используется на сервере, то в .htaccess:
    Код:
    php_flag display_errors on
    php_flag display_startup_errors on
    
    2) в файле php.ini посмотреть на максимально установленный размер загружаемого файла (тут 2 Мб:(
    Код:
    ; Maximum allowed size for uploaded files.
    upload_max_filesize = 2M 
    
    и стоит ли та библиотека, функцию ресайз которой вы используете (например, GD или GD2)

    3) Вот примеры использования разных ресайзов ("на лету" и с тамбулярами:(
    пример 1
    пример 2
     
  4. polyetilen

    polyetilen Заблокирован

    Регистр.:
    10 авг 2006
    Сообщения:
    814
    Симпатии:
    474
    например перед изменением картинки добавить
    PHP:
    ini_set('memory_limit''128M');
    или глобально на весь скрипт в .htaccess
    php_value memory_limit 128M


    если там другие ограничения по размеру файла, времени обработки то:
    php_value memory_limit 128M
    php_value upload_max_filesize 300M
    php_value max_execution_time 800
    php_value post_max_size 300M
     
  5. t0wer

    t0wer BlackHerald

    Регистр.:
    24 июн 2008
    Сообщения:
    733
    Симпатии:
    422
    Там скорее всего используется на локал хосте и не включен модуль реврайта (по умолчанию). Так что такая схема вряд ли прокатит.
    А что касается размещения этого на сервере, то тоже вряд ли так как хостеры следят за состоянием своих используемых ресурсов и не дадут такой вольности... если только это не свой выделенный сервер, который позволит так извращяться!
     
  6. NoX

    NoX Писатель

    Регистр.:
    18 ноя 2007
    Сообщения:
    4
    Симпатии:
    1
    Сталкивался с таким когда через GD пытался ресайзить картинки разрешением более 2000пикселей. Не выдавало никаких ошибок, просто белый лист, причём лимиты памяти и тд были большими. Я так понял что дело в GD-lib, и для работы с графикой рекомендую использовать расширение imagick
    http://www.imagemagick.org/script/index.php
    PHP: ImageMagick - Manual
     
Статус темы:
Закрыта.