所以我试图将图像从离子应用上传到laravel网络应用程序问题我不知道如何做到这一点我的控制器看起来像这样
public function postDamage(Request $request){
try{
$damage = new damage();
$damage->type = $request->input('type');
$damage->address = $request->input('address');
$damage->description = $request->input('description');
$damage->solvedBy = $request->input('solvedBy');
$damage->userToken = $request->input('userToken');
$damage->opstina = $request->input('opstina');
$damage->image = $request->input('image');
/* $imgName="";
if ($request->hasFile('image')) {
$imgName = time().'.'.$image->getClientOriginalExtension();
$destinationPath = public_path('/images');
$image->move($destinationPath, $imgName);
$this->save();
return back()->with('success','Image Upload successfully');
}
$target_path = time().'.jpg';
$imagedata = $request->input('image');
$imagedata = str_replace('data:image/jpeg;base64,',$imagedata);
$imagedata = str_replace('data:image/jpg;base64,',$imagedata);
$imagedata = str_replace(' ', '+',$imagedata);
$imagedata = base64_decode($imagedata);
file_put_contents($target_path,$imagedata);
$damage->image = $imagedata; */
$damage->save();
return response()->json(['response'=>'Штетата е пратено.']);
}catch (\Exception $e){
return response()->json(['response'=>$e->getMessage()]);
}
}
现在我如何将一些数据与图像一起发布,但是图像要在服务器中上传。离子生成的图像在base64中。
我尝试从谷歌的任何方法,但没有一个工作。 谢谢。
答案 0 :(得分:0)
我正在使用Spatie Laravel Medialibrary为我的laravel模型保存图像这里是一个git链接: https://github.com/spatie/laravel-medialibrary
然后在控制器
if ($f = $request->file) {
$img = explode(",", $f)[1];
$base64data = str_replace(',', '', $img);
$item->addMediaFromBase64($base64data)
->usingFileName('original.jpg')
->toMediaCollection('item');
}
现在你的情况可能是(未经测试)
$img = explode(",", $f)[1];
$base64data = str_replace(',', '', $img);
$imagedata = base64_decode($base64data);
file_put_contents($target_path,$imagedata);