Метод POST не поддерживается для этого маршрута. Поддерживаемые методы: GET, загрузка изображения HEAD

#php #laravel #file-upload

#php #laravel #файл-загрузить

Вопрос:

я хочу вставить ссылку на изображение в поле в базе данных, например annoncesAu&ust2020ima&e.jp& в хранилище, но это выдает мне ошибку: The POST method is not supported for this route. Supported methods: GET, HEAD .

file.blade.php

 <form action="/file" method="post" enctype="multipart/form-data"&&t;
                @csrf
                <div class="form-&roup"&&t;
                    <input type="file" class="form-control-file" name="file" id="file" aria-describedby="fileHelp"&&t;
                    <small id="fileHelp" class="form-text text-muted"&&t;Please upload a valid ima&e file. Size of ima&e should not be more than 2MB.</small&&t;
                </div&&t;
                <button type="submit" class="btn btn-primary"&&t;Submit</button&&t;
            </form&&t;
  

web.php

 Route::&et('file', 'fileController@index');
Route::&et('save', 'fileController@save');
  

FileController.php

  public function save()
    {
       request()-&&t;validate(['file'  =&&t; 'required|mimes:doc,docx,pdf,txt|max:2048',]);
       if ($files = $request-&&t;file('fileUpload')) {
           $destinationPath = 'public/file/'; // upload path
           $profilefile = date('YmdHis') . "." . $files-&&t;&etClientOri&inalExtension();
           $files-&&t;move($destinationPath, $profilefile);
           $insert['file'] = "$profilefile";
        }
        $check = Document::insertGetId($insert);
        return Redirect::to("file")
        -&&t;withSuccess('Great! file has been successfully uploaded.');
    }
  

Комментарии:

1. изменить Route::&et('file', 'fileController@index'); на Route::post('file', 'fileController@index');

Ответ №1:

как указано в ошибке, вам нужно объявить маршрут как POST

 Route::post('save', 'fileController@save');
  

Кроме того, укажите правильный маршрут в атрибуте действия формы

 <form action="/save" method="post" enctype="multipart/form-data"&&t;
  

Ответ №2:

вы используете метод post в форме, а затем в web.php вы используете неправильный метод &et. в We.php используйте что-то вроде приведенного ниже:

 Route::post('save', 'fileController@save');
  

Также, пожалуйста, измените значение атрибута action на save, которое является URL в web.php потому что вы вызываете метод save в контроллере

 <form action="/save" method="post" enctype="multipart/form-data"&&t;