Как сохранить изображение, содержащее base64 sr c в качестве файла ввода в php - PullRequest
0 голосов
/ 07 марта 2020

Я создал холст используя метод 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);
...