Postingan lainnya
Update Gambar pada Laravel 7 - Kenapa gambar tersimpannya dengan nama D:\xampp\tmp\php80.tmp
Tolong bantu jawab ini kenapa yaa??
awalnya
string(58) "foto_pengajar/eqoRQ7QttexMwf3IsdK0qNns9GdOkpmqt6SINOAL.jpg"
tapi setelah masuk ke database berubah menjadi D:\xampp\tmp\php80.tmp
Script Controllernya
// metode untuk edit data
public function edit($id_pengajar){
$pengajar = DB::table('pengajar')->where('id_pengajar',$id_pengajar)->first();
return view('pengajar-edit-data',['pengajar' => $pengajar]);
}
//metode untuk update data
public function update(Request $request, $id_pengajar){
//dd($request->all());
$this->_validation($request);
if ($request->file('foto_pengajar')) {
$gambar = $request->file('foto_pengajar')->store('foto_pengajar' , 'public');
$data = DB::table('pengajar')->where('id_pengajar',$id_pengajar)->first();
//return $data->foto_pengajar;
if ($data->foto_pengajar){
Storage::delete('public/'. $data->foto_pengajar);
$data->foto_pengajar = $gambar;
} else{
$data->foto_pengajar = $gambar;
}
}
DB::table('pengajar')->where('id_pengajar',$id_pengajar)->update([
'foto_pengajar' => $request->foto_pengajar,
'nama_pengajar' => $request->nama_pengajar
]);
return redirect()->route('pengajar')->with('message','Data berhasil diupdate');
}
Script Formnya :
<form action="{{ route('pengajar.update',$pengajar->id_pengajar) }}" method="POST" enctype="multipart/form-data">
@csrf
@method('PATCH')
<div class="form-group">
<label @error('nama_pengajar')
class="text-danger"
@enderror>Nama Pengajar @error('nama_pengajar')
| {{ $message }}
@enderror</label>
<input type="text" name="nama_pengajar"
@if (old('nama_pengajar'))
value="{{ old('nama_pengajar') }}"
@else
value="{{ $pengajar->nama_pengajar }}"
@endif
class="form-control">
</div>
<div class="row">
<div class="col-12 col-md-6 col-lg-6">
<div class="form-group">
<img src="{{ asset('storage/'. $pengajar->foto_pengajar) }}" width="25%" alt="" class="img-thumbail">
<hr>
<label @error('foto_pengajar')
class="text-danger"
@enderror>Upload Foto @error('foto_pengajar')
| {{ $message }}
@enderror</label>
<input type="file" name="foto_pengajar" class="form-control">
</div>
<div class="card-footer text-right">
<button class="btn btn-primary mr-1" type="submit">Simpan</button>
<button class="btn btn-secondary" type="reset" value="reset">Batal</button>
</div>
</div>
</form>
Script Root nya
Route::get('pengajar/{id_pengajar}/edit', 'PengajarController@edit')->name('pengajar.edit');
Route::patch('pengajar/{id_pengajar}','PengajarController@update')->name('pengajar.update');
2 Jawaban:
<div>Mungkin untuk codingnnya bisa dirubah dulu untuk dapatin data dari imagenya, untuk mendapatkan namanya bisa menggunakan getClientOriginalName(), untuk mendapatkan ekstensinya gunakan getClientOriginalExtension() baru kemudian buat variabel untuk menggabungkannya dan baru di simpan ke database namanya</div>
<pre>//seperti ini contohnya $nama = mt_rand(1, 9999); |
| $today = Carbon::today()->toDateString(); | $date = str_replace('-','',$today); |
| $ext_foto = $request->file('map')->getClientOriginalExtension(); | $foto_file = $date."-".$nama.".". $ext_foto; |
| $path = $request->file('map')->storeAs('public/map', $foto_file); |
| $mappingcovid = mappingcovid::create([ | 'tgl' => $request->tgl, | 'map' => $foto_file | ]);</pre>