Как исправить «Метод GET не поддерживается для этого маршрута. Поддерживаемые методы: POST.»

Вопрос: Я пытаюсь разместить изображения в базе данных с кодом base_64. Но я получаю "Метод GET не поддерживается для этого маршрута. Поддерживаемые методы: POST.". Что я делаю неправильно? Я уже пытался удалить маршрут "Route :: get ('/image', 'ImageController @create');". Я также попытался изменить маршрут "Route :: post ('/imagepost', 'ImageController @store');" Маршрут :: получить. Но все

Вопрос:

Я пытаюсь разместить изображения в базе данных с кодом base_64. Но я получаю “Метод GET не поддерживается для этого маршрута. Поддерживаемые методы: POST.”. Что я делаю неправильно?

Я уже пытался удалить маршрут “Route :: get (‘/image’, ‘ImageController @create’);”.

Я также попытался изменить маршрут “Route :: post (‘/imagepost’, ‘ImageController @store’);” Маршрут :: получить. Но все это похоже на провал.

Мои маршруты:

Auth::routes(); Route::get(‘/image’, ‘ImageController@create’); Route::post(‘/imagepost’, ‘ImageController@store’); Route::resource(‘/image’, ‘ImageController’); Route::get(‘/image/{id}’, ‘ImageController@showImage’);

Функция моего магазина в ImageController:

public function store(Request $request) { $image = new Image; $file = $request[‘image’]; $img = base64_encode($file); $image->image = $img; Auth::user()->images()->save($image); return Redirect(‘/image’); }

Мой клинок, куда я загружаю и публикую изображение:

@if(Auth::check()) <form id=»image» type=»POST» name=»image» action=»/imagepost»> @csrf <input type=»file» name=»image» /> <input type=»submit» name=»submit» /> </form> @else

Вам нужно больше кода, пожалуйста, спросите?

Я ожидаю, что изображение будет в базе данных, но на самом деле оно показывает сообщение об ошибке “Метод GET не поддерживается для этого маршрута. Поддерживаемые методы: POST”.

Лучший ответ:

У вас есть ошибка в вашем теге формы. Чтобы установить метод, вы должны использовать атрибут method, а не type:

<form id=»image» method=»POST» name=»image» action=»/imagepost»> @csrf <input type=»file» name=»image» /> <input type=»submit» name=»submit» /> </form> Ответ №1

Ваша форма должна выглядеть так:

@if(Auth::check()) <form id=»image» method=»POST» name=»image» action=»/imagepost» enctype=»multipart/form-data»> @csrf @method(‘POST’) <input type=»file» name=»image» /> <input type=»submit» name=»submit» /> </form> @else Ответ №2Auth::routes(); Route::get(‘/image’, ‘ImageController@create’); Route::view(‘/imagep’,’your form page path’); Route::post(‘/imagepost’, ‘ImageController@store’); Route::resource(‘/image’, ‘ImageController’); Route::get(‘/image/{id}’, ‘ImageController@showImage’);

Сделайте это так, на самом деле вы не отображаете свою форму в браузере, почему это происходит

Ответ №3

У вас есть ошибка в вашем теге формы. Чтобы установить метод, вы должны использовать атрибут метода, а не type, и использовать enctype=»multipart/form-data» для загрузки файла:

<form id=»image» method=»POST» action=»/imagepost» enctype=»multipart/form-data»> @csrf <input type=»file» name=»image» /> <input type=»submit» name=»submit» /> </form>

Оцените статью
Добавить комментарий