【发布时间】:2021-07-08 11:14:04
【问题描述】:
这与我最近提出的一个问题非常相似,后来我已将其删除,但我对我现在面临的问题有了更好的了解,并且相信我可以提出更明确的问题。
我正在创建一个文件上传应用程序。我将其限制为仅 .dem 文件,这是非常罕见的。我添加了enctype="multipart/form-data" 来支持我的文件上传,并且我已经正确命名了所有内容。当我提交我的文件时,控制器似乎没有收到它。
这是我的代码:
刀片
<form action="{{ route('upload') }}" method="POST" enctype="multipart/form-data" class="form">
@csrf
<label for="demo" id="drop" class="drop">
<p>Drag demos here <br>or <span style="color:#2b66cc;">browse</span></p>
</label>
<input id="demo" type="file" name="demo" multiple accept=".dem"></input>
<div id="list" style="cursor:default;" class="ui animated list"></div>
<button id="submit" class="ui primary fluid button" disabled type="submit">Upload</button><br>
</form>
路线
Route::post('/', 'App\Http\Controllers\UploadController@store')->name('upload');
控制器
class UploadController extends Controller
{
public function store(Request $request)
{
dd($request->file());
}
}
我在这里所做的只是尝试接收文件。
当我运行此代码并通过表单上传文件时,$request-file() 返回一个空数组。这向我表明,我的文件由于某些原因而从未真正到达控制器。
任何帮助将不胜感激。
【问题讨论】:
-
我认为
file需要一个参数,它是输入的名称(在本例中为演示)。如果我没记错的话,你可以看到所有带有$request->files()的文件 -
是的,我已经使用 file('demo') 对其进行了测试。它返回 null。
-
当你使用
dd查看$request的全部内容时会发生什么?如果文件不存在,那么您的表单应该有问题。 (也许</input>引起了问题。输入没有关闭标签) -
图片link。另外,我忘了删除结束标签,但不幸的是,这不是导致问题的原因。
-
奇怪。也许是尺寸限制?您要上传的文件有多大?您是否尝试过上传没有
accept属性的内容,然后只选择一些随机图像或文本文件?