Sander1 62 Опубликовано: 24 апреля 2018 Рассказать Опубликовано: 24 апреля 2018 (изменено) При загрузке изображения по URL выполняется проверка заголовков, в частности Content-Length Некоторые хостинги изображений не отдают этот заголовок, отчего скрипт возвращает ошибку, мол файла нет или он не доступен. http://prntscr.com/j9fe12 На скорую руку заменил строку: if ( preg_match("#Content-Length: ([0-9]+)#i",$x,$size) ) return intval($size[1]); else return 0; На: if (preg_match("#Content-Length: ([0-9]+)#i",$x,$size)) { return intval($size[1]); } else { $x = @file_get_contents($this->from); $x = strlen($x); return $x; } И все заработало. Т.е. проблема исключительно в отсутствии заголовка Content-Length Так же неплохо было бы добавить поддержку URL`ов вида: example.com/image.jpg?123123 Чтобы не нужно было вручную удалять ?123123 Изменено 24 апреля 2018 пользователем Sander1 Цитата Ссылка на сообщение Поделиться на других сайтах
celsoft 6 094 Опубликовано: 24 апреля 2018 Рассказать Опубликовано: 24 апреля 2018 47 минут назад, Sander1 сказал: При загрузке изображения по URL выполняется проверка заголовков, в частности Content-Length Некоторые хостинги изображений не отдают этот заголовок, отчего скрипт возвращает ошибку Принято, спасибо. Цитата Ссылка на сообщение Поделиться на других сайтах
ТритонаКусок 1 Опубликовано: 25 апреля 2018 Рассказать Опубликовано: 25 апреля 2018 В 24.04.2018 в 17:12, celsoft сказал: Принято, спасибо. А ещё там неплохо было бы добавить поддержку редиректов, т.к. часто те же сами источники делают редирект с внешне постоянной ссылки на временную ссылку на изображение, или как кинопоиск например, у которого в коде страницы у постеров один URL, а при переходе происходит редирект на CDN яндекса и DLE соответственно не может такую картинку по URL взять. Цитата Ссылка на сообщение Поделиться на других сайтах
Рекомендованные сообщения
Присоединяйтесь к обсуждению
Вы можете опубликовать сообщение сейчас, а зарегистрироваться позже. Если у вас есть аккаунт, войдите в него для написания от своего имени.