Laravel:存储功能不会将我的文件名保存到数据库,而是将文件存储到文件夹

问题描述 投票:0回答:1

我想将文件存储在公共文件夹中并将其名称保存到mysql数据库,数据库不会为file_name列创建记录

当我发布文件时,文件移动到文件夹,但数据库没有创建文件名记录,请帮忙。

  • 这是我的控制器存储功能

       $request->validate([
        "title"=>"required",
        "description"=>"required|string",
        "file_name"=>"nullable"
       ]);
       if($request->has('file')){
        $file=$request->file('file');
        $extension=$file->getClientOriginalExtension();
    
        $fileName=time().'.'.$extension;
        $path='postFiles';
        $file->move($path,$fileName);
       }
    
       $post=Post::create([
        'title'=> $request->title,
        'description'=> $request->description,
        'file_name'=>$fileName,
        'user_id'=>auth()->user()->id
       ]);
       $post->save();
    
    
  • 这是数据库记录

    
    id title   description   user_id  file_name   created_at           updated_at 
    
    1  title:  34636sdfg...  2        NULL          2024-04-16 09:06:41  2024-04-16 09:06:41
    
php laravel api rest laravel-blade
1个回答
0
投票

if ($request->hasFile('file_name'))

$file = $request->file('file_name');
$extension = $file->getClientOriginalExtension();

$fileName = time() . '.' . $extension;
$path = 'postFiles';
$file->move($path, $fileName);
© www.soinside.com 2019 - 2024. All rights reserved.