我正在尝试上传一个简单的HTML文件。
<form accept-charset="utf-8" name="gallery" method="POST" action="/gallery">
<input type="hidden" name="_token" value="fQ7arteCHmBFVfvQARWxxK3dXNgUJF40FdsaD3R">
<label class="btn btn-default">
Browse <input type="file" name="gallery[]" hidden multiple>
</label>
</form>
我已经用Xdebug跟踪了它,我可以看到$request->gallery
显示了一个文件名数组,但文件数仍为零:
if (!$request->files->count()) {
return redirect()->back()->with('error', 'Empty file list.');
}
PHP全局变量$_FILES
也是空的。
使用Dropzone.js之类的东西通过AJAX提交时效果很好,但是当我使用标准的HTML5表单元素进行提交时,它无法正常工作。
感觉我在这里错过了一些明显的东西。
答案 0 :(得分:1)
Route::get('search',BlahblahController@search);
您在表单中遗漏了<form accept-charset="utf-8" enctype="multipart/form-data" name="gallery" method="POST" action="/gallery">
<input type="hidden" name="_token" value="fQ7arteCHmBFVfvQARWxxK3dXNgUJF40FdsaD3R">
<label class="btn btn-default">
Browse <input type="file" name="gallery[]" hidden multiple>
</label>
答案 1 :(得分:0)
像其他人说的那样,不要忘记CSRF。 (默认值:开)
<form method="POST" action="/profile">
{{ csrf_field() }}
...
</form>
答案 2 :(得分:0)
您必须检查以下请求:
if($request->hasFile('file')){
//or isset($request->file){
... //you have access to 'request->file' only here
}