Laravel 为什么要在null上回调用成员函数getClientOriginalName()?

Laravel 为什么要在null上回调用成员函数getClientOriginalName()?,laravel,Laravel,为什么要在null上回调用成员函数getClientOriginalName()? 变量定义得不好吗?您应该始终进行空值检查,像这样修改您的函数 public function importProd(Request $request) { $uploadedFile = $request->file('file'); $filename = var_dump(time().$uploadedFile->getClientOriginalName())

为什么要在null上回调用成员函数getClientOriginalName()?
变量定义得不好吗?

您应该始终进行空值检查,像这样修改您的函数

public function importProd(Request $request) {

        $uploadedFile = $request->file('file');
        $filename = var_dump(time().$uploadedFile->getClientOriginalName());

        Storage::disk('local')->putFileAs(
            '/',
            $uploadedFile,
            $filename
        );

        Excel::import(new ProductImport, storage_path('app/'.$filename));

        Storage::delete($filename);

        return back();
    }

您应该首先验证
$request->file('file')
是否确实存在
$request->file('file')
设置?我还想从您的
$filename
中删除
var\u dump()
,提供刀片文件。我删除了它,但最后一个问题是文件的内容,您必须使用
enctype=“multipart/form data”
表单操作并选中
dd($request->all())
public function importProd(Request $request) {
    if($request->hasFile('file')){
        $uploadedFile = $request->file('file');
        $filename = var_dump(time().$uploadedFile->getClientOriginalName());
        Storage::disk('local')->putFileAs(
            '/',
            $uploadedFile,
            $filename
        );
        Excel::import(new ProductImport, storage_path('app/'.$filename));
        Storage::delete($filename);
        return back();
    }
}