php - 即使存在路由,所有带有 multipart/form-data 的表单发布都会返回 404
问题描述
我的 Laravel 5.7 应用程序中有一个表单,允许用户上传 CSV 文件以导入数据。它已经工作了几个星期。但是,它突然开始为表单multipart/form-data
作为其enctype
. 奇怪的是,当我将其更改为URLEncoded
* 时,没有 404。
我已经尝试了几件事。
- 更改路线名称。
- 检查
php artisan route:list
输出以验证路由是否存在。 - 通过 GET 方法访问路由,我得到方法不允许异常。
- 清除缓存。
刀片形式
<form action="/import/createParts/upload/" method="post" enctype="multipart/form-data">
<div class="form-group">
<label for="csv_upload_file">Select the File</label>
<input type="file" name="csv_upload_file">
</div>
@csrf
<button type="submit">Upload</button>
</form>
路线
Route::prefix('import')->group(function () {
Route::get('/createParts', 'Import\CreatePartsController@index');
Route::post('/createParts/upload', 'Import\CreatePartsController@upload');
});
理想情况下,这应该将表单传递给函数,然后发生另一个过程。
解决方案
命名路线概念是处理路线的更简单方法。
在web.php
Route::post('import/createParts/upload', 'Import\CreatePartsController@upload')
->name('createparts.upload');
在blade
<form method="post" action="{{ route('createparts.upload') }}"
enctype="multipart/form-data">
@csrf
<div class="form-group">
<label for="csv_upload_file">Select the File</label>
<input type="file" name="csv_upload_file">
</div>
<input type="submit" value="Upload"/>
</form>
推荐阅读
- c# - ObservableCollection 上的扩展方法
,我的类型:IEnumerable - redirect - SharePoint Online:多站点环境的重定向 URI
- javascript - 如何从单独的 Webpack 包访问 jQuery 插件
- scala - Scala - 使用表达式的评估将数据帧写入 csv 文件
- java - 改造:URL 查询字符串不能有替换块
- node.js - 服务器上的节点获取请求失败:无法获取本地颁发者证书
- python - 使用 twistd 部署烧瓶
- python - 随机缩进错误?
- vaadin - Vaadin 10 - 上传组件 - 删除文件事件
- java - 在 Java 中是否可以从对象的构造函数将对象添加到地图中?