Laravel 5.2上传的文件始终为null

时间:2017-03-01 10:10:11

标签: php laravel laravel-5.2

我试图上传文件,但它总是在我的控制器中返回null。这是我得到的错误:

FatalThrowableError in FileController.php line 25:
Fatal error: Call to a member function getClientOriginalExtension() on null

表格

<form enctype="multipart/form-data" method="post" action="{{route('upload')}}">
    <label for="file_upload">Upload file</label>
    <input id="file_upload" type="file" name="file">
    <input type="submit" value="Upload">
</form>

路由(不调用任何中间件)

Route::post('file/upload', [
    'as'   => 'upload',
    'uses' => 'FileController@handleUpload',
]);

控制器

public function handleUpload(Request $request)
{
    $dir = sys_get_temp_dir() . DIRECTORY_SEPARATOR . 'adp';
    if (!file_exists($dir)) mkdir($dir);

    $extensions = AppPlatform::lists('package_extension')->toArray();

    $extension = $request->file('file')->getClientOriginalExtension(); // this line throws the nullreference exception
    ...
}

我可能忽略了一些非常明显的事情,但似乎无法找到问题所处的位置。

修改

当我在chrome的开发者工具中查看请求时,我可以看到该文件是在发布请求中正确发送的。

------WebKitFormBoundaryTLB02G6sLMEE2fMM
Content-Disposition: form-data; name="file"; filename="app-release.apk"
Content-Type: application/octet-stream


------WebKitFormBoundaryTLB02G6sLMEE2fMM--

1 个答案:

答案 0 :(得分:0)

Muthu17的帮助下,我发现upload_max_filesizepost_max_size已重置为2M,而不是我输入的值。所以我把它添加到我的网络服务器(Heroku)配置中,现在它可以工作了!

upload_max_filesize = 1024M
post_max_size = 1024M