Intervention \ Image \ Exception \ NotReadableException Невозможно инициировать из заданных двоичных данных - PullRequest
0 голосов
/ 08 января 2019

Мне нужно сделать изображение из данных BLOB-объектов. Я использую Laravel Framework и Postman. Но в некоторых случаях изображение не создается, и в нем отображается ошибка: Невозможно выполнить инициализацию из заданных двоичных данных. Моя функция контроллера имеет следующий код

if ($request->get('logo')) {
        $image = $request->get('logo');
        $pos  = strpos($image, ';');
        $type = explode(':', substr($request->get('logo'), 0, $pos))[1];
        $type = explode("/", $type);
        $name1 = $request->user_id."-".time().'.'.$type[1];
        $profile->logo = $name1;
        if (!File::exists(public_path().'uploads/profiles/logo')) {
            File::makeDirectory(public_path().'uploads/profiles/logo', $mode = 0755, true, true);
        }
        \Image::make($request->get('logo'))->save(public_path('uploads/profiles/logo/').$name1);
    }

$ request-> get ('logo') содержит значение

data:image/jpeg;base64,/9j/2wBDAAMCAgMCAgMDAwMEAwMEBQgFBQQEBQoHBwYIDAoMDAsKCwsNDhIQDQ4RDgsLEBYQERMUFRUVDA8XGBYUGBIUFRT/2wBDAQMEBAUEBQkFBQkUDQsNFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBT/wAARCAQ4B4ADASIAAhEBAxEB/8QAHQAAAQUBAQEBAAAAAAAAAAAAAgADBAUGBwgJAf/EAFwQAAEDAgMGAgYGBwQGBwYBDQIAAwQFEgYiMgcTFEJSYiNyCBUkM4KSFkNTorLCASU0RGNz0jFUYeIJERdkg5MYJjVBRXTwITZRVZSjJ4Sz8hlGVpHTN3GBw+P/xAAbAQADAQEBAQEAAAAAAAAAAAAAAgMEBQEGB//EADoRAAICAQMDAwMCBAUDBAMBAAACAxIEEyIyAQVCERRSIzEzIWIVJEFDNFFhcXIGU5GBg…4V6aSSVCokkkkgCSSSQACkQ43Eu28nMkkvGPFNHGjXhaI5E1UntyO4a+JJJTNLcSpUiNDvzO6Ekl6wik6ywMqAwSSUywCGTJajDcRJJJRGKGZMdk9gKKkkmM4CSSSCQ09/Yo6SSVgO9ejlSrKNU5xD+0Pi0J+X/9NcfxzP8AWWMq3JIr7pRAPlHKkksac2OnP/hkKUEQAkkrHMHgBKy/KkkgBGFmVd49EKNfjqoO/wC6iH30klGf8RfH/Kp2raFMvxbLzaBEPuLyPtCn8Tj+sO3ZAfs+XIkkuBDzNWfxUVNZvdu5FuMKgNjubP0JJLl9yOTHxNQczcjkWCxVWHZLpscgkkkubiCSmfZTqSS7JIkciSSSiRDSSSQA6CaeeSSXi9AIhmkkktgDV5XJXpJJwAvSvSSQBHM86jvGkkqnig3oC0JJIKAJJJLQAlYU0yszaEklOTiBON6wkt8kkuf6dBAr0KSS9AA01MesaSSVlArzkkepMpJLaAkKSSAP/9k=

А при публикации данных из API почтальона я получил ошибку

Intervention \ Image \ Exception \ NotReadableException
Unable to init from given binary data.

1 Ответ

0 голосов
/ 08 января 2019

Вы должны попробовать это:

 if ($request->hasFile('logo')) {
        $image = $request->file('logo');
        $pos  = strpos($image, ';');
        $type = explode(':', substr($request->get('logo'), 0, $pos))[1];
        $type = explode("/", $type);
        $name1 = $request->user_id."-".time().'.'.$type[1];
        $profile->logo = $name1;
        if (!File::exists(public_path().'uploads/profiles/logo')) {
            File::makeDirectory(public_path().'uploads/profiles/logo', $mode = 0755, true, true);
        }
        \Image::make($request->get('logo'))->save(public_path('uploads/profiles/logo/').$name1);
    }
...