无法在 Laravel 5.2 中上传图片

Cannot upload image in Laravel 5.2

我用上传图片做输入数据,我的代码

$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 的代码有什么问题吗?

谢谢。 :)

我正在使用这种方法并且有效:

//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));

确保table中没有字段不能为空

您可以在此处了解有关 public_path() 的更多信息:

https://laravel.com/docs/5.5/helpers#method-public-path

我的上传文件夹也在 public 目录

如果您想确保保存在数据库中的数据与您发送的数据相同,请检查以下方法:

//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));

然后检查保存在数据库中的数据,这两个数据应该是相同的。