即使存在路由,带有multipart / form-data的所有Form Post也返回404

时间:2019-05-06 21:26:23

标签: php html laravel upload laravel-5.7

我的Laravel 5.7应用程序中有一个表格,允许用户上传CSV文件以导入数据。它已经工作了几个星期。但是,突然,它开始为表单以multipart/form-dataenctype的所有POST请求返回404错误。奇怪的是,当我将其更改为URLEncoded *时,没有404。

我尝试了几件事。

  1. 更改路线名称。
  2. 检查php artisan route:list的输出以确认路由是否存在。
  3. 通过GET方法访问路由,但我得到方法不允许异常。
  4. 清除缓存。

刀片表格

<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');
});

理想情况下,这应该将表单传递给函数,然后发生另一个过程。

2 个答案:

答案 0 :(得分:0)

确保为您的路线设置名称,这很有用。

路线

Route::prefix('import')->group(function () {
    Route::post('createparts/upload', 'Import\CreatePartsController@upload')
        ->name('import.createparts.upload');
});

刀片

<form method="post" action="{{ route('import.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>

    <button type="submit">Upload</button>
</form>

答案 1 :(得分:0)

命名路线概念是处理路线的更简单方法。

id

ROW_NUMBER

SELECT ROW_NUMBER() OVER (ORDER BY auto_increment) AS rn FROM yourTable;

SET @row_number = 0;

SELECT 
    (@row_number:=@row_number + 1) AS rn
FROM yourTable
ORDER BY auto_increment;