Расшифровка изображения Laravel Base64 не отображается в браузере

Я дословно скопировал некоторый пример кода, который сейчас не могу найти. В любом случае, вот часть моего CustomerController.php

use Illuminate\Support\Facades\File;
use Illuminate\Support\Facades\Storage;

`$photo = $customer['photo'];
// convert base64 and save to folder
$image_data = base64_decode(preg_replace('#^data:image/\w+;base64,#i', '', $photo));

//grab a new tmp file
$tmpFilePath=sys_get_temp_dir().'/'.uniqid(); 

//write the image to it
file_put_contents($tmpFilePath, $image_data); 

//move it. 

//give it a name
$mime_type = 'jpg';
$imageName = time().'.'.str_replace("image/","",$mime_type);

//or if using File facade
File::move($tmpFilePath, public_path("sq1/$imageName"));

Используя почтальон для тестирования, он возвращает успех, создает JPG, но не отображает изображение.

https://wv-mr.overair.ca/sq1/1543215074.jpg

тестовое изображение

Я использовал этот кодировщик (я хотел избавить вас от присоединения всей base64): https://www.browserling.com/tools/image-to-base64

Если это поможет, то я обнаружил, что фактическое изображение составляет 7 583 байта, а декодированное изображение - только 7 483 байта. Не уверен, почему 100 байт были потеряны во время декодирования.

0 ответов

Другие вопросы по тегам