Maxman Опубликовано 8 октября, 2016 Жалоба Поделиться Опубликовано 8 октября, 2016 Сразу проясню ситуацию. Симпла 2.3.7 установлена и работает без нареканий. При импорте товаров картинки загружаются без проблем с урлов с нормальными человеческими адресами. Но вот попался поставщик у которого изображения товаров находятся по ссылке такого вида: http://i.siteapi.org/ybIXaRA4OJ1Ztg3x0X4BH1dssvs=/fit-in/1024x768/center/top/e3d998b538e740f.ru.s.siteapi.org/img/babc4c02313279b05173aa7ff4c1fd0bbfb4347e.jpg и загрузка сразу перестала работать. В базу полный адрес пишется правильно и при ресайзе переписывается на короткое имя файла. В папке originals создаются файлы изображений с соответствующими названиями, вот только размер этих самых изображений равен 0! По сути это даже не файл, а просто название Соответственно изображения другого размера тоже не создаются, так как не из чего. Ссылки рабочие и картинки открываются в браузере без проблем, можете проверить сами. Никак не могу понять, в чем может быть причина. Вернее я точно знаю, что причина кроется в ссылке и почему-то мне кажется, что в обилии точек. Не нашел ничего похожего на форуме и решил попросить помощи у сообщества. Подскажите пожалуйста, в какую сторону копать? Цитата Ссылка на сообщение Поделиться на другие сайты
Maksclub Опубликовано 8 октября, 2016 Жалоба Поделиться Опубликовано 8 октября, 2016 Как вариант пройтись парсером Content Downloader и переименовать их на лету, загрузить переименнованные в Симплу. Я с похожей проблемой столкнулся, картинки кириллицей, не грузились ( решал так Цитата Ссылка на сообщение Поделиться на другие сайты
Kors Опубликовано 8 октября, 2016 Жалоба Поделиться Опубликовано 8 октября, 2016 Вероятно, настройки того сервер не позволяют "на лету" грузить файлы из PHP. Стоит попробовать загружать файлы с использованием cURL. Цитата Ссылка на сообщение Поделиться на другие сайты
Maxman Опубликовано 8 октября, 2016 Автор Жалоба Поделиться Опубликовано 8 октября, 2016 Как вариант пройтись парсером Content Downloader и переименовать их на лету, загрузить переименнованные в Симплу. Я с похожей проблемой столкнулся, картинки кириллицей, не грузились ( решал так Спасибо за совет, но все же хотелось бы докопаться до истины и исправить ошибку непосредственно в CMS. С киррилическими доменами справляюсь с помощью поиска и замены кирриллицы на punycode либо в экселе, либо в notepad. Делается за пару минут, после чего проблемы с загрузкой пропадают. Цитата Ссылка на сообщение Поделиться на другие сайты
Maxman Опубликовано 8 октября, 2016 Автор Жалоба Поделиться Опубликовано 8 октября, 2016 Вероятно, настройки того сервер не позволяют "на лету" грузить файлы из PHP.Стоит попробовать загружать файлы с использованием cURL. Да вы правы, Kors, сервер не дает грузить файлы. Сделал отдельную страничку со скриптом для теста и при попытке загрузить файл ошибка: failed to open stream: HTTP request failed! HTTP/1.1 403 Forbidden in... Почему то эта ошибка не отображалась ни в логах, ни где либо еще, хотя показ ошибок включен. С других урлов грузится без проблем. Остается только cURL. По готовности выложу решение. Цитата Ссылка на сообщение Поделиться на другие сайты
Maxman Опубликовано 8 октября, 2016 Автор Жалоба Поделиться Опубликовано 8 октября, 2016 Проблема решена! Спасибо всем кто откликнулся! Выкладываю готовое решение, может кому пригодится.В файле api/Image.php в 134 строке находим код: // Перед долгим копированием займем это имя fclose(fopen($this->config->root_dir.$this->config->original_images_dir.$new_name, 'w')); copy($filename, $this->config->root_dir.$this->config->original_images_dir.$new_name); и меняем его на: $file = fopen($this->config->root_dir.$this->config->original_images_dir.$new_name, 'w'); $user_agent = "Mozilla/5.0 (compatible; MSIE 5.01; Windows NT 5.0)"; $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, $filename); curl_setopt($ch, CURLOPT_FILE, $file); curl_setopt($ch, CURLOPT_USERAGENT, $user_agent); curl_setopt($ch, CURLOPT_HEADER, false); curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 2); curl_setopt($ch, CURLOPT_POST, 0); $result = curl_exec($ch); curl_close($ch); fclose($file); Все отлично загружается! Цитата Ссылка на сообщение Поделиться на другие сайты
Рекомендуемые сообщения
Присоединяйтесь к обсуждению
Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.