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

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 блокирует. Подскажите плиз
 
Видимо какой то параметр настрйки php блокирует
поразительная догадливость :) может потрудишься перевести сообщение об ошибки и потом бегло посмотреть в мануале какие именно настройки относятся к твоей проблеме?
 
может это memory_limit ? :) вобщем не пинайте сильно не знаю Я ...
Вообще Мне не понятно почему картинка весом 700-800 кб убивает 32 mb оперативной памяти...
 
потому что "вес" картинки, еще со времени изобретения алгоритма LZW, не значит вообще ничего.
это не оправдание. человек вообще-то может учиться, усваивать знания. А так же находить их и использовать.
 
alibedog
Потому что картинка, какого-то бы формата она ни была, переводится во внутренний формат, который, аналогично BMP, хранит информацию о каждом пикселе (примерно 5 байт на пиксель). Вот и считай.

-~{}~ 28.02.10 12:31:

То есть важную роль играют ширина и высота, а не «вес»
 
Спасбо за ответы, но на вопрос так и никто не ответил (((
Что делать то господа?? мне необходимо загружать картинки до 3500 писелей по ширине или высоте, что менять то надо?
 
как добавил строку 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
 
как добавил строку php_value memory_limit 32M в .htaccess
так сразу выскачила 500 ошибка...((
AllowOverride All в настройка апача пропиши

-~{}~ 01.03.10 16:59:

или так: ini_set('memory_limit', '32M');
 
прописал в htaccess
AllowOverride All
php_value memory_limit 32M
таже беда

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

-~{}~ 01.03.10 18:29:

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

а где прописать memory_limit зависит от специфики настроек сервера. может в .htaccess, может в httpd.conf, а может и в php.ini.
 
прописал в 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М конечн :)
 
Как вариант - после создания превью ты не убиваешь переменную где содержался ее исходник, и память разрастается.
вообще, оптимально большую фотку ресайзить до максимальной превью, а все остальные превью делать с этой уменьшенной фотки, а не с оригинала.
 
Сверху