我尝试在Laravel中上传带有表单的excel文件,但我遇到了问题: 在非对象
上调用成员函数存储()这是我的代码:
{!! Form::open(['route' => 'choixcol']) !!}
<div class="col-md-4">
{!! Form::file('data', '', ['id' => 'file', 'class' => 'form-control']) !!}
</div>
<div class="col-md-8">
{!! Form::submit("Utiliser ce fichier", array('class' => 'btn btn-info')) !!}
</div>
{!! Form::close() !!}
我的控制器中的功能:
public function upload(Request $request) {
$path = $request->file('data')->store('data');
return view('mesures.index');
}
请问如何解决?
编辑:
在我的$ request中我有:
Request {#37 ▼
#json: null
#sessionStore: null
#userResolver: Closure {#231 ▶}
#routeResolver: Closure {#248 ▶}
+attributes: ParameterBag {#39 ▶}
+request: ParameterBag {#38 ▼
#parameters: array:2 [▼
"_token" => "6IPVFkzu8o2jH244y0BwJEqKDqfWrt5pKwMS7Pls"
"data" => "99081D_Pesee2016.xlsx"
]
}
+query: ParameterBag {#45 ▶}
+server: ServerBag {#42 ▶}
+files: FileBag {#41 ▶}
+cookies: ParameterBag {#40 ▶}
+headers: HeaderBag {#43 ▶}
#content: null
#languages: null
#charsets: null
#encodings: null
#acceptableContentTypes: null
#pathInfo: "/mesures/choix"
#requestUri: "/mesures/choix"
#baseUrl: ""
#basePath: null
#method: "POST"
#format: null
#session: Store {#205 ▶}
#locale: null
#defaultLocale: "en"
}
我想我只是直接获取文件的名称而不是文件...
答案 0 :(得分:0)
错误是在这种情况下file('data')
不是对象。
我会将$request
数组记录为Log::debug($request);
,然后查看您有权访问的内容。
https://laravel.com/docs/5.3/requests#storing-uploaded-files
答案 1 :(得分:0)
我找到了解决方案,这很简单:我忘了将'files'=&gt;设置为我的表单!