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

Недочет в 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 взять.

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

Создайте аккаунт или войдите в него для комментирования

Вы должны быть пользователем, чтобы оставить комментарий

Создать аккаунт

Зарегистрируйтесь для получения аккаунта. Это просто!

Зарегистрировать аккаунт

Войти

Уже зарегистрированы? Войдите здесь.

Войти сейчас
×
×
  • Создать...