laravel 5.2 在数据库中存储图像

laravel 5.2 store image inside database

我的控制器是:

public function store(Request $request)
{
  $this->validate($request, ['title' => 'required',
                             'date' => 'required',
                             'image_1' => 'mimes:png,jpeg',
                            ]);

  $user = Auth::user()->id;
  $report = new Report($request->all());
  $report->author_id = $user;

  $image = $request->file('image_1');
  $ext = $image->getClientOriginalExtension();
  $path = public_path('uploads/reports/' . $image . $ext);

  $report->image_1 = $path;
  $report->save();

  Session::flash('flash_message', 'Report added!');

  return redirect('dash/reports');
}

没有我的图像名称,我的应用程序商店数据就像

/var/www/localhost/htdocs/gemini/public/uploads/reports//tmp/phpul0PNipng

为什么要用/tmp/randomstring名字?

$request->file('image_1')

这returns一个对象,不是文件名。您正确获取扩展名,因此您可以通过相同的方式获取文件名:

$path = public_path('uploads/reports/' . $image->getClientOriginalName() . $ext);