我试图上传文件,但它总是在我的控制器中返回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--
答案 0 :(得分:0)
在Muthu17的帮助下,我发现upload_max_filesize
和post_max_size
已重置为2M,而不是我输入的值。所以我把它添加到我的网络服务器(Heroku)配置中,现在它可以工作了!
upload_max_filesize = 1024M
post_max_size = 1024M