我正在尝试通过 Laravel 5.5 中的 HTML 表单上传图片。我已经包含了 enctype="multipart/form-data"
属性,仍然没有任何反应。
表单代码:
<form method="POST" enctype="multipart/form-data">
{{ csrf_field() }}
<div class="form-group">
<label for="m_photo" class="col-md-4 control-label">Main photo</label>
<div class="col-md-6">
<input id="m_photo" type="file" class="form-control-file space" name="m_photo" required>
</div>
</div>
<div class="form-group">
<div class="col-md-6 col-md-offset-4">
<button type="submit" class="btn btn-primary">Submit</button>
</div>
</div>
</form>
路由(web.php)代码:
Route::post('smartphones/entry', 'HomeController@s_submit')->name('s_submit');
Controller 代码:
public function s_submit() {
if (Input::hasFile('m_photo')) {
// doing something
}
else {
echo 'Nothing happened';
}
}
当我提交表单时,系统提示“什么都没发生”。
有趣的是,当我这样做时:
public function s_submit(Request $request) {
$input = Input::all();
dd($input);
}
我明白了:
array:1 [
"m_photo" => UploadedFile {#210 ▶}
]
这就像图像正在 已通过,但我无法检索它。请帮忙。
最佳答案
当 PHP max_file_size 未设置为允许发送您尝试上传的文件的大小时,就会发生这种情况。这会导致 hasFile
返回 false,例如当 file->getClientOriginalName()
工作时。
尝试检查 php.ini 中的 upload_max_filesize
或 post_max_size
,或者尝试使用较小的文件来检查它是否有效。
关于php - Laravel:文件上传不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48444034/