laravel应用程序不会保存图像,但会将其文件名存储到数据库中

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了laravel应用程序不会保存图像,但会将其文件名存储到数据库中相关的知识,希望对你有一定的参考价值。

所以我正在使用laravel和Intervention Image包。我的表单接受图片,将其名称保存到DB,但图片永远不会保存。为什么?

谢谢!

控制器:

 public function store(Request $request)
{
        $img=Image::make($request->file('slika')); //slika-name of input field, and Slike my desired folder.
        $img->save('Slike');


    $this->validate($request,[
     'naziv'=>'required|string|max:30',
        'mesto'=>'required|integer|max:4',
    ]);

  $crs=new Crossroad();
  $crs->naziv=$request->naziv; //the name of the crossroad
  $crs->mesto=$request->mesto; //number of turns in it
  $crs->slika=$request->slika; //picture's name(string in DB)

  $crs->save();


  return redirect('/crossroads/index');

}
答案

请试试这个:

if ($request->hasFile('slika')) {

$image = $request->file('slika');
$name = time().'.'.$image->getClientOriginalExtension();
$destinationPath = public_path('/path/to/');
$image->move($destinationPath, $name);

}

以上是关于laravel应用程序不会保存图像,但会将其文件名存储到数据库中的主要内容,如果未能解决你的问题,请参考以下文章

Linux 图像不会显示在主根文件夹中,但会显示在子文件夹中

表单对象没有属性“save_m2m”django

如何在 Laravel REST API 中使用 PUT 方法更新图像?

提交大文件 Laravel 和 Ajax

C# 类库 - 将图像构建操作更改为资源会将其从项目中删除

html 中的内联图像,base64,不会出现在 gmail 中(但会出现在 Thunderbird 中)