Публикация всех форм с многосоставными данными / данными формы, возвращающими 404, даже если маршрут существует - PullRequest
0 голосов
/ 07 мая 2019

В приложении Laravel 5.7 есть форма, позволяющая пользователю загружать файл CSV для импорта данных.Это работает в течение нескольких недель.Однако внезапно он начал возвращать 404 ошибки для всех запросов POST, где форма имела multipart/form-data в качестве enctype.Странно то, что когда я изменяю его на 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 голосов
/ 07 мая 2019

Именованная концепция маршрута является гораздо более простым способом обработки маршрутов.

В 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>
0 голосов
/ 07 мая 2019

Убедитесь, что вы задали имя для своего маршрута, это полезно.

Маршруты

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

Blade

<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>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...