我使用上传图片制作输入数据,我的代码
$name = $request->input('name');
$images = $request->file('image');
$name_img = $images->getClientOriginalName();
$ext = $images->getClientOriginalExtension();
// Move Uploaded File
$destinationPath = 'img/';
$images->move($destinationPath,$name_img);
$path = $destinationPath.'/'.$name_img;
然后将它们放入数组中,然后插入数据库
$data = array(
'name' => $name,
'image' => $path, );
DB::table('daftar')->insert($data);
return json_encode(array('status' =>true));
该代码适用于Laravel 5.1,但它在Laravel 5.2中不起作用。
Laravel 5.2的代码有什么问题吗?
谢谢。 :)
答案 0 :(得分:0)
我正在使用这种方法,它可以工作:
//Use should have use App\Daftar in above your class;
//Your method inputs should be like UploadRequest $request , Daftar $daftar
$file=$request->file('image');
$name=time().'-'.$file->getClientOriginalName();
$path = public_path().'/img';
$file->move($path, $name);
$daftar->create(array('name' => $name, 'image' => $path));
确保表中的字段不是空的
你在这里了解更多关于public_path()的内容:
https://laravel.com/docs/5.5/helpers#method-public-path
我的上传文件夹也在公共目录
上如果您想确保数据库中保存的数据与您发送的数据相同,请按以下方法检查:
//Use should have use App\Daftar in above your class;
//Your method inputs should be like UploadRequest $request , Daftar $daftar
$file=$request->file('image');
$name=time().'-'.$file->getClientOriginalName();
$path = public_path().'/img';
$file->move($path, $name);
print 'name is'.$name.' and image is '.$path;
$daftar->create(array('name' => $name, 'image' => $path));
然后检查保存在数据库中的数据两个数据应该是相同的。