图像保存为tmp文件

I'm trying to save image using Laravel

Image is saved as tmp file in database, why so?

the image saved as C:\xampp\tmp\phpA3EB.tmp in the database

how can I fix this?

in the controller:

public function update(Request $request, Bank $bank)
{
    if ( isset($request->photo) && $request->photo ) {

        $request['image'] = UploadImage($request->file('photo'), 'bank', '/banks');

        @unlink(public_path('/uploads/banks/') . $bank->image);
    }

    $updated = $bank->update($request->all());

    $bank->updateTranslations([
        'name' => $request->get('name_en'),
    ]);

    return $updated ?
        redirect()->route('banks.index')->with('success', trans('messages.updateTrue')) :
        redirect()->back()->with('warning', trans('messages.updateFalse'));
}


function UploadImage($inputRequest, $prefix, $folderNam)
{
    $imageName = $prefix.'_'.time().'.'.$inputRequest->getClientOriginalExtension();

    $destinationPath = public_path('/uploads/'.$folderNam);

    $inputRequest->move($destinationPath, $imageName);

    return $imageName ? $imageName : false;
}

please try this :

public function UploadImage($image, $path)
{
    $type = $image->getMimeType();
    $ext = substr($type, 6, strlen($type) -1 );

    $picName = uniqid() . '.' .$ext;

    $image->move(public_path($path), $picName);

    return $path . '/' . $picName;
  }
}

Please try this :

public function UploadImage($image, $prefix, $path)
{
 $ext = $image->extension();

 $filename = $prefix.'_'.uniqid() . '.' .$ext;

 $image->move(public_path('/uploads/'.$path), $filename);

 return $filename;
}