在非对象上调用成员函数getClientOriginalExtension()

Jen*_*sej 2 php upload laravel

我正在尝试制作图片上传器,但它总是给我这个错误

在非对象上调用成员函数getClientOriginalName()这是我的代码控制器代码

public function postSubtitle()
{
    //$video = Video::where('user_id', '=', Auth::id())->find(Input::all('id'));

    var_dump(Input::all());
    $file= Input::file('name');
    echo $file->getClientOriginalExtension();   
}
Run Code Online (Sandbox Code Playgroud)

这是上传表格

{{ form_open({'url': 'video/subtitle', 'files': 'true'}) }}

                    {{ form_file('name', {class: 'form-control'} ) }}
                    {{ form_submit(trans('main.edit'), {class: 'btn btn-lg btn-success btn-block'}) }}
                    {{form_close()}}
Run Code Online (Sandbox Code Playgroud)

我的代码出了什么问题?

Mar*_*lln 6

如果你想处理文件上传,你form必须有enctype="multipart/form-data".(你可能有,但我们不知道你的功能是如何form_open工作的.)

如果你有,但仍然得到相同的错误,这应该意味着你没有选择任何文件.如果您没有上传文件,Input::file('name')则将null代替对象.

所以你应该做的是先检查它是否为空,然后继续处理你的文件.

$file = Input::file('name');
if ($file !== null) {
    echo $file->getClientOriginalExtension();  
}
Run Code Online (Sandbox Code Playgroud)