загрузка картинок на сайт + их обработка

alibedog

Новичок
загрузка картинок на сайт + их обработка

Добрый день Господа!

Проблема заключается в том что Я не могу загрузить фотографии больших размеров . пишет ошибку
Fatal error: Allowed memory size of 33554432 bytes exhausted (tried to allocate 7776 bytes) in /home/xxxx/public_html/xxx.ru/inc/foto.php on line 750

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

Видимо какой то параметр настрйки php блокирует. Подскажите плиз
 

dimagolov

Новичок
Видимо какой то параметр настрйки php блокирует
поразительная догадливость :) может потрудишься перевести сообщение об ошибки и потом бегло посмотреть в мануале какие именно настройки относятся к твоей проблеме?
 

alibedog

Новичок
может это memory_limit ? :) вобщем не пинайте сильно не знаю Я ...
Вообще Мне не понятно почему картинка весом 700-800 кб убивает 32 mb оперативной памяти...
 

Фанат

oncle terrible
Команда форума
потому что "вес" картинки, еще со времени изобретения алгоритма LZW, не значит вообще ничего.
это не оправдание. человек вообще-то может учиться, усваивать знания. А так же находить их и использовать.
 

Вурдалак

Продвинутый новичок
alibedog
Потому что картинка, какого-то бы формата она ни была, переводится во внутренний формат, который, аналогично BMP, хранит информацию о каждом пикселе (примерно 5 байт на пиксель). Вот и считай.

-~{}~ 28.02.10 12:31:

То есть важную роль играют ширина и высота, а не «вес»
 

alibedog

Новичок
Спасбо за ответы, но на вопрос так и никто не ответил (((
Что делать то господа?? мне необходимо загружать картинки до 3500 писелей по ширине или высоте, что менять то надо?
 

alibedog

Новичок
как добавил строку php_value memory_limit 32M в .htaccess
так сразу выскачила 500 ошибка...((

Меня больше всего удивляет то что когда Я скажем гружу фото размером 3500*2700 то превью фото размером 64*54 пикселя создается нормально, а фото размером 500*390 не создается, и вместо него отображается исхдное фото с исходными размерами. В чем беда может быть???
Ведь если превью фото создается нормально, то почему так не нормально не может и создаться и фото размером 500*390 пикселей...

-~{}~ 01.03.10 16:46:

вот некоторые настройки из phpinfo

max_input_time 60 60
memory_limit 32M 32M
open_basedir no value no value
output_buffering no value no value
output_handler no value no value
post_max_size 8M 8M
precision 12 12
realpath_cache_size 16K 16K
realpath_cache_ttl 120 120
register_argc_argv On On
register_globals Off Off
register_long_arrays On On
report_memleaks On On
report_zend_debug On On
safe_mode Off Off
safe_mode_exec_dir no value no value
safe_mode_gid Off Off
 

Alm

Новичок
как добавил строку php_value memory_limit 32M в .htaccess
так сразу выскачила 500 ошибка...((
AllowOverride All в настройка апача пропиши

-~{}~ 01.03.10 16:59:

или так: ini_set('memory_limit', '32M');
 

alibedog

Новичок
прописал в htaccess
AllowOverride All
php_value memory_limit 32M
таже беда

Или настройки апача в php.ini редактируются?

-~{}~ 01.03.10 18:29:

И ответьте пожалуйста на мой вопрос, он мне покоя не дает
"Меня больше всего удивляет, то что когда Я скажем гружу фото размером 3500*2700 то превью фото размером 64*54 пикселя создается нормально, а фото размером 500*390 не создается, и вместо него отображается исхдное фото с исходными размерами. В чем беда может быть???
Ведь если превью фото создается нормально, то почему так не нормально не может и создаться и фото размером 500*390 пикселей..."
 

fixxxer

К.О.
Партнер клуба
памяти нужно на каждую картинку в байтах ширина * высота * 8 где-то.

а где прописать memory_limit зависит от специфики настроек сервера. может в .htaccess, может в httpd.conf, а может и в php.ini.
 

Alm

Новичок
прописал в htaccess
AllowOverride All
php_value memory_limit 32M
таже беда
AllowOverride All прописываеся в настройках апача чтобы разрешить изменения через .htaccess, а потом уже в .htaccess пишешь php_value memory_limit 32M.

Или можешь в самом начале своего скрипта на след после <?php прописать ini_set('memory_limit', '32M');

А если у тя есть доступ к php.ini то поправь там чтобы потом не заморачиваться, и поставь 128V чтоль, чтобы не заморачиваться...

-~{}~ 02.03.10 09:00:

*ну не 128V а 128М конечн :)
 

kvf77

Red Devil
Как вариант - после создания превью ты не убиваешь переменную где содержался ее исходник, и память разрастается.
вообще, оптимально большую фотку ресайзить до максимальной превью, а все остальные превью делать с этой уменьшенной фотки, а не с оригинала.
 
Сверху