Ошибка при добавлении картинки через URL
Всем привет!
Парни, реально классный движок! Но есть некоторые моменты, с которыми нужно разбираться.
Один из них сводится к тому, что не добавляется картинка через URL, пишет: «Ошибка: невозможно обработать внешний файл». При добавлении с сервера все работает нормально.
Пробывал картинки разного размера. Права на папку uploads и images 777
В чем может быть проблема?
Парни, реально классный движок! Но есть некоторые моменты, с которыми нужно разбираться.
Один из них сводится к тому, что не добавляется картинка через URL, пишет: «Ошибка: невозможно обработать внешний файл». При добавлении с сервера все работает нормально.
Пробывал картинки разного размера. Права на папку uploads и images 777
В чем может быть проблема?
- 0
- 15 июня 2009, 21:07
- ak78
Посмотрите в phpinfo директиву allow_url_fopen. Для корректной работы загрузки картинок через URL нужно значение On. ИМХО хостинг не будет менять параметры php.ini. Если там значение Off, то можно переписать функцию с учетом того, что у вас разрешено.
P.S. Просмотреть phpinfo можно в модуле «админ панель» либо создать любой файл например 1.php и внести в него код
P.S. Просмотреть phpinfo можно в модуле «админ панель» либо создать любой файл например 1.php и внести в него код
<?php phpinfo();?>
А вообще… изменяюсь. Посмотрел код и выяснил, что такая ошибка происходит, если скрипт не может изменить размер изображения. Скажите, вы какого разрешения картинку пытаетесь загрузить?
Тогда скорей всего проблема в том, что скрипт не может записать временный файл. Чтобы точно узнать это, временно попробуйте в файл
вставить строку
Попробуйте загрузить удаленную картинку, скопируйте сюда выданную ошибку и верните все изменения обратно.
/include/ajax/uploadImg.php после 64 строки fclose($fp); вставить строку
$tmp = filesize($sFileTmp); и в самом низу перед строкой $GLOBALS['_RESULT'] = array( вставьте строку $sMsg = $tmp;Попробуйте загрузить удаленную картинку, скопируйте сюда выданную ошибку и верните все изменения обратно.
Юрий, проделал все, что Вы написали, но когда пробую добавить картинку всплывает просто слово «ошибка» и все. Правильность изменений несколько раз проверил.
После включения кеширования:
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
господа, спешу вас уверить данная проблема решается очень просто, да действительно все дело в кеше, лечиться следующим образом:
1) в корне создаем каталог, например tmp и даем на него права 777
2) идем в файл config.php и ищем следующее
копируем и перед данной фразой ставим две косые //
3)далее добавляем эту же фразу следом за тем что мы закомментировали и правим ее в таком виде
4) поднимаемся чуть выше и находим вот это
собственно меняем false на true и сохраняем файл… все картинки грузятся хоть через урл хоть из ФС.
Удачного использования лайвстрита.
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 и сохраняем файл… все картинки грузятся хоть через урл хоть из ФС.
Удачного использования лайвстрита.
Комментарии (22)
RSS свернуть / развернуть