Перейти к публикации

Недочет в UploadFileViaURL


Рекомендованные сообщения

При загрузке изображения по 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

Изменено пользователем Sander1
Ссылка на сообщение
Поделиться на других сайтах
47 минут назад, Sander1 сказал:

При загрузке изображения по URL выполняется проверка заголовков, в частности Content-Length

Некоторые хостинги изображений не отдают этот заголовок, отчего скрипт возвращает ошибку

Принято, спасибо.

Ссылка на сообщение
Поделиться на других сайтах
В 24.04.2018 в 17:12, celsoft сказал:

Принято, спасибо.

А ещё там неплохо было бы добавить поддержку редиректов, т.к. часто те же сами источники делают редирект с внешне постоянной ссылки на временную ссылку на изображение, или как кинопоиск например, у которого в коде страницы у постеров один URL, а при переходе происходит редирект на CDN яндекса и DLE соответственно не может такую картинку по URL взять.

Ссылка на сообщение
Поделиться на других сайтах

Присоединяйтесь к обсуждению

Вы можете опубликовать сообщение сейчас, а зарегистрироваться позже. Если у вас есть аккаунт, войдите в него для написания от своего имени.

Гость
Ответить в тему...

×   Вставлено в виде отформатированного текста.   Вставить в виде обычного текста

  Разрешено не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отобразить как ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставить изображения напрямую. Загрузите или вставьте изображения по ссылке.

×
×
  • Создать...