您好,我在使用 laravel 上传图像时收到以下错误:“在 null 上调用成员函数 getClientOriginalExtension()”。
这是我的控制器:
$imageName = rand(11111, 99999) . '.' . $request->file('image')->getClientOriginalExtension();
$destinationPath = 'events';
$fileName = rand(11111, 99999) . '.' . $extension;
$upload_success = $image->move($destinationPath, $imageName);
这是我的观点:
{!! Form::file('image', null, ['class' => 'form-control']) !!}
如何将 $imageName 保存到数据库中的 pic 字段。我尝试过这个,但它不起作用。该字段在表中保持为空。
$task=$request->user()->tasks()->create([
'name' => $request->name,
'description' => $request->description,
'location' => $request->location,
'pic' => $imageName,
]);
在您的
form:open
中,您需要像下面这样的'files' => true
Form::open('your_path', array('files' => true))
或
<form action="your_path" method="post" enctype="multipart/form-data">
只需在表单的开始标记中添加以下代码:
enctype="multipart/form-data"
首先请检查Camilo Rojas接受的解决方案,然后检查输入名称和文件参数,名称必须相同。
控制器:
$request->file('image')->getClientOriginalExtension();
查看:
<input type="file" name="image"/>
这意味着该文件没有看到任何文件输入。因此,请检查您是否在每个文件输入中输入了一些内容
如果不起作用,请改用此方法
$request->file('image')->guessExtension();
guessExtension 方法使用文件的 MIME 类型来确定扩展名。它检查文件的实际内容,以对文件扩展名进行有根据的猜测。在原始文件名不表示文件内容的情况下,此方法可能更可靠。