PHP Laravel : $request->hasFile() 不工作

PHP Laravel : $request->hasFile() is not working

我有一个表格,我可以在其中获取标题、内容...和图像。当我 dd($requests->all()); 时,returns 以下是正确的。

array:10 [▼
  "_token" => "HAf1f0m6kH54atYXUSb0UMpXcNdmA3IR46iTwt83"
  "title" => null
  "imagePost" => Illuminate\Http\UploadedFile {#259 ▼
    -test: false
    -originalName: "07_ducati_diavel_base.jpg"
    -mimeType: "image/jpeg"
    -error: 0
  }
]

这是我的图像处理代码:

public function create(Request $request)
    {
        // dd($request->all());
        $imagePost = 'IMAGE-POST'.time().$request->file('imagePost')->getClientOriginalName();
        
        if($request->hasFile('imagePost'))
        {
            // ec
            $filee = $request->image;
            $fileName = $filee->getClientOriginalName();
            $filee->move('uploads/posts',$fileName);
            $image = $fileName;
        }
        $status = $request->input('status');
        DB::table('post')->insert([
            'image'=> $image
        ]);
    }

但是 img DB table 字段变为空。

if($request->hasFile('imagePost')) 未获取字段。

我做错了什么?

您正在修改文件对象,然后再使用 hasFile() 条件检查它。首先检查 $request 是否有文件然后根据您的用途修改它 ``

public function create(Request $request)
{
    // dd($request->all());        
    
    if($request->hasFile('imagePost'))
    {
        $imagePost = 'IMAGE-POST'.time().$request->file('imagePost')->getClientOriginalName();
        // ec
        $filee = $request->image;
        $fileName = $filee->getClientOriginalName();
        $filee->move('uploads/posts',$fileName);
        $image = $fileName;
    }
    $status = $request->input('status');
    DB::table('post')->insert([
        'image'=> $image
    ]);
}