Я создал холст используя метод text to canvas, который предоставляет тег image с base64 sr c что-то вроде data : image / png ; base64 , iVBORw0KGgoAAAANSUhEUgAAALQAAAC0CAMAAAAKE теперь у меня есть многошаговая форма, и мне нужно загрузить это изображение на первом шаге, я уже сохранял это изображение после метода декодирования, например,
jQuery
src is base64 string like **data:iVBORw0KGgoAAAANSUhEUgAAALQAAAC0CA**
let canvasImgSrc = jq('#text-canvas-img').attr('src');
Ajax
jq.ajax({
type: "POST",
url: "trademark/store",
headers: {'X-CSRF-TOKEN': jQuery('meta[name="csrf-token"]').attr('content')},
data: {
imgBase64: canvasImgSrc
}
})
В контроллере
$imgBase64Src = $request->imgBase64;
$folderPath = public_path('/uploads/trademark/');
$image_parts = explode(";base64,", $imgBase64Src);
$image_type_aux = explode("image/", $image_parts[0]);
$image_type = $image_type_aux[1];
$image_base64 = base64_decode($image_parts[1]);
$file = $folderPath . 'TM :' . time() . '.png';
file_put_contents($file, $image_base64);
$uploadedImgName = 'TM : ' . time() . '.' . $image_type;
//store trademark name into database
$trademarkUploaded = new TrademarkApplication();
$trademarkUploaded->tradmark = $uploadedImgName;
$trademarkUploaded->save();
теперь работает нормально, я хочу загрузить изображение в качестве метода ввода файла
, который поможет мне использовать функцию ввода файла, это поможет мне сделать более точным c и простой способ хранения
$image = $request->file('banner_image');
$imageName = $image->getClientOriginalName();
$image->move(public_path('uploads/banners'),$imageName);