Ошибка при добавлении картинки через URL

 
Всем привет!

Парни, реально классный движок! Но есть некоторые моменты, с которыми нужно разбираться.
Один из них сводится к тому, что не добавляется картинка через URL, пишет: «Ошибка: невозможно обработать внешний файл». При добавлении с сервера все работает нормально.
Пробывал картинки разного размера. Права на папку uploads и images 777

В чем может быть проблема?
  • 0
  • 15 июня 2009, 21:07
  • ak78

Комментарии (22)

RSS свернуть / развернуть
Скорее всего невозможно скачать удаленный файл ввиду конфигурации вашего хостинга.
0
Hrom, спасибо.
Как Вы думаете, они смогут это без проблем изменить? Хостинг sweb.ru
0
Посмотрите в phpinfo директиву allow_url_fopen. Для корректной работы загрузки картинок через URL нужно значение On. ИМХО хостинг не будет менять параметры php.ini. Если там значение Off, то можно переписать функцию с учетом того, что у вас разрешено.

P.S. Просмотреть phpinfo можно в модуле «админ панель» либо создать любой файл например 1.php и внести в него код
<?php phpinfo();?>
0
Посмотрел — стоит On…
0
А вообще… изменяюсь. Посмотрел код и выяснил, что такая ошибка происходит, если скрипт не может изменить размер изображения. Скажите, вы какого разрешения картинку пытаетесь загрузить?
0
Пробовал разные, вот, например 507×376 не грузится
0
Тогда скорей всего проблема в том, что скрипт не может записать временный файл. Чтобы точно узнать это, временно попробуйте в файл
/include/ajax/uploadImg.php
после 64 строки
fclose($fp); 

вставить строку
$tmp = filesize($sFileTmp);
и в самом низу перед строкой
$GLOBALS['_RESULT'] = array(
вставьте строку
$sMsg = $tmp;


Попробуйте загрузить удаленную картинку, скопируйте сюда выданную ошибку и верните все изменения обратно.
0
Юрий, проделал все, что Вы написали, но когда пробую добавить картинку всплывает просто слово «ошибка» и все. Правильность изменений несколько раз проверил.
0
Значит скрипт не смог определить размер файла, т.е. он его не записал. Нужно в конфиг указать директорию для кеша (SYS_CACHE_DIR) и установить права на запись. Лучше, если это будет выше корня сервера.
0
ок, как раз нашел топик с решением проблемы кеширования как раз на свеб.ру
0
лучше в конфиге включить кеширование и проверить верно ли стоит директория для кеша
0
После включения кеширования:
Fatal error: Uncaught exception 'Zend_Cache_Exception' with message 'Incorrect option name : cache_dir' in /opt/php5/lib/ZendFramework/library/Zend/Cache.php:101 Stack trace: #0 /opt/php5/lib/ZendFramework/library/Zend/Cache/Backend.php(112): Zend_Cache::throwException('Incorrect optio...') #1 /opt/php5/lib/ZendFramework/library/Zend/Cache/Backend.php(75): Zend_Cache_Backend->setOption('cache_dir', '/') #2 /opt/php5/lib/ZendFramework/library/Zend/Cache/Backend/File.php(105): Zend_Cache_Backend->__construct(Array) #3 /home/s/spbfitru/voditel2/public_html/classes/modules/sys_cache/Cache.class.php(71): Zend_Cache_Backend_File->__construct(Array) #4 /home/s/spbfitru/voditel2/public_html/classes/engine/Engine.class.php(68): LsCache->Init() #5 /home/s/spbfitru/voditel2/public_html/classes/engine/Router.class.php(99): Engine->InitModules() #6 /home/s/spbfitru/voditel2/public_html/index.php(31): Router->Exec() #7 {main} thrown in /opt/php5/lib/ZendFramework/library/Zend/Cache.php on line 101
0
Это как раз и говорит о том, что неверно установлена директория кеша. Выше описанными действиями вы это проверяли)
0
0
Hrom, ort, большое спасибо.
Сделал как описано здесь livestreet.ru/blog/sollutions/690.html — все заработало)
0
Рад помочь =)
0
у меня та же проблема, а что делать не знаю:( подскажите!
0
господа, спешу вас уверить данная проблема решается очень просто, да действительно все дело в кеше, лечиться следующим образом:
1) в корне создаем каталог, например tmp и даем на него права 777
2) идем в файл config.php и ищем следующее

define('SYS_CACHE_DIR',$sTmpDir.'/'); // каталог для файлового кеша, также используется для временных картинок. По умолчанию подставляем каталог для хранения сессий


копируем и перед данной фразой ставим две косые //
3)далее добавляем эту же фразу следом за тем что мы закомментировали и правим ее в таком виде

define('SYS_CACHE_DIR',DIR_SERVER_ROOT.'/tmp/'); // каталог для файлового кеша, также используется для временных картинок. По умолчанию подставляем каталог для хранения сессий


4) поднимаемся чуть выше и находим вот это

define('SYS_CACHE_USE',false); // использовать кеширование или нет


собственно меняем false на true и сохраняем файл… все картинки грузятся хоть через урл хоть из ФС.
Удачного использования лайвстрита.
0
+ помогло.
жаль время комментария истекло. не могу поставить +. спасибо.
0
да это собственно неважно, я лайвстритом не пользуюсь, у друга была проблема, помог решить, но решение должно быть публичным, поэтому и отписал сюда, мне на плюсы как то фиолетово.
0
Кто-нибудь решил эту проблему на Мастерхосте?
Перепробовал все варианты, проблема не устраняется.
0
Господа, подскажите, а где можно изменить максимальный размер загружаемых изображений, дело в том, что картинки больше 1000 px не загружаются, менее 1000 нормально идут.
0
Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.