I created a web with Laravel 10 then hosted it in a shared hosting. Recently I got the problem with error message The GET method is not supported for route poi/proses-upload-foto. Supported methods: POST.
Basically, this is just a simple image upload page.
Here the code :
web.php
Route::get('/poi/upload-foto/{id}', [PoiController::class, 'form_upload_foto']);
Route::post('/poi/proses-upload-foto', [PoiController::class, 'proses_upload_foto'])->name('image.store');
Controller
public function form_upload_foto(Poi $poi, $id){
$qry = Poi::where('id', $id)->get();
return view('poi.upload_foto', ['data' => $qry[0]]);
}
public function proses_upload_foto(Poi $poi, Request $req){
$req->validate([
'image' => 'required|image|mimes:png,jpg,jpeg,svg|max:2048',
]);
$imageName = time() . '.' . $req->image->extension();
$req->image->move(public_path('images'), $imageName);
if($req->deskripsi){
$poi::where('id', $req->id_marker)->update(array('image' => $imageName, 'deskripsi' => $req->deskripsi));
}else{
$poi::where('id', $req->id_marker)->update(array('image' => $imageName));
}
return back()->with('success', 'You have successfully uploaded an image.')->with('image', $imageName);
}
view
@extends('master')
@section('isi')
<div class="container">
<div class="panel panel-primary col-md-8">
<div class="panel-heading mt-5">
<h4><strong>Upload Foto</strong></h4>
</div>
<div class="panel-body">
@if ($message = Session::get('success'))
<div class="alert alert-success alert-dismissible fade show" role="alert">
<strong>{{ $message }}</strong>
<button type="button" class="close" data-dismiss="alert" aria-label="Close">
<span aria-hidden="true">×</span>
</button>
</div>
<img class="mb-3" src="/images/{{ Session::get('image') }}" style="width: 250px;">
@endif
<form action="{{ route('image.store') }}" method="post" enctype="multipart/form-data">
@csrf
<div class="col-md-10">
<label for="judul" class="form-label">Judul</label>
<input type="text" class="form-control rounded-0" id="judul" name="judul"
value="{{ $data->nama }}" readonly />
</div>
<br />
@if ($data->deskripsi == '')
<div class="col-12">
<label for="deskripsi" class="form-label" rows="4" cols="40">Deskripsi</label>
<textarea class="form-control rounded-0" id="deskripsi" name="deskripsi"></textarea>
</div>
@endif
<br />
<div class="col-12">
<label for="deskripsi" class="form-label">File Foto</label>
<input type="file" name="image" id="inputImage">
</div>
<br />
@error('image')
<span class="text-danger">{{ $message }}</span>
@enderror
<div class="col-12">
<button type="submit" class="btn btn-success">Upload</button>
</div>
</form>
</div>
</div>
</div>
@endsection
<form class="row g-3">
</form>
for the route I think I write correct code. What did I miss ?
Thank you
New contributor
Budi is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.