Вопрос:
Я пытаюсь разместить изображения в базе данных с кодом 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>