Laravel 在 null 上调用成员函数 getClientOriginalExtension()

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

您好,我在使用 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,
        ]);
image laravel upload null
5个回答
29
投票

在您的

form:open
中,您需要像下面这样的
'files' => true

Form::open('your_path', array('files' => true))

<form action="your_path" method="post" enctype="multipart/form-data">

1
投票

只需在表单的开始标记中添加以下代码:

enctype="multipart/form-data"


1
投票

首先请检查Camilo Rojas接受的解决方案,然后检查输入名称和文件参数,名称必须相同。

控制器:

$request->file('image')->getClientOriginalExtension();

查看:

<input type="file" name="image"/>

0
投票

这意味着该文件没有看到任何文件输入。因此,请检查您是否在每个文件输入中输入了一些内容


0
投票

如果不起作用,请改用此方法

$request->file('image')->guessExtension();

guessExtension 方法使用文件的 MIME 类型来确定扩展名。它检查文件的实际内容,以对文件扩展名进行有根据的猜测。在原始文件名不表示文件内容的情况下,此方法可能更可靠。

© www.soinside.com 2019 - 2024. All rights reserved.