@XenK

Ошибка при получении изображения?

Пытаюсь получить изображение по ссылке, но получаю ошибку:
'imagecreatefromstring(): Data is not in a recognized format'


Код:
private static function saveImageUrl($url)
    {
        header('Content-Type: image/png');
        $ch = curl_init($url);
        curl_setopt($ch, CURLOPT_HEADER, false);
        curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
        curl_setopt($ch, CURLOPT_BINARYTRANSFER, 1);
        curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, true);
        curl_setopt($ch, CURLOPT_USERAGENT, 'Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US) AppleWebKit/534.16 (KHTML, like Gecko) Chrome/10.0.648.11 Safari/534.16');
        return curl_exec($ch);
    }

    public function uploadImg($fromUrl) 
    {
        return imagecreatefromstring(static::saveImageUrl($fromUrl));
    }
  • Вопрос задан
  • 104 просмотра
Пригласить эксперта
Ответы на вопрос 1
ivankomolin
@ivankomolin
Во первых посмотрите что возвращает static::saveImageUrl($fromUrl).
Скорее всего он возвращает не содержимое картинки, поэтому и ошибка.
И header('Content-Type: image/png') не нужен в данном случае.

А вообще судя по тегу "парсинг" вы так картинки грабите с других сайтов. Это очень плохо. Медленно и прожорливо по ресурсам.

Картинки это же файлы, зачем вы содержимое этих файлов грузите в память через php.
Грузите их через консоль тем же curl или wget сразу на диск.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы