Postingan lainnya
Eror Ketika Upload Gambar dengan Summernote pada Laravel
Selamat malam teman2, admin, dan Guru Besar Kita bersama (Mas Hilman) :D saya mendapat kesulitan saat melakukan upload Gambar menggunakan summernote pada laravel. Masalah/Eror ini muncul ketika user melakukan edit pada artikel yg mereka tulis, berikut kodenya. 1. Metode Store
public function store(Request $request)
{
$this->validate($request, [
'title' => 'required|min:7',
'subtitle' => 'required|min:20',
'subject' => 'required|min:20'
]);
$request->tags = array_diff($request->tags, [0]);
if(empty($request->tags))
return redirect('forum/create')->withInput($request->input())->with('tag_error', 'Pilih minimal satu #Tag');
$slug = str_slug($request->title, '-');
//ceck slug
if(topic::where('slug', $slug)->first() != null)
$slug = $slug . '-' .time();
$content = $request->subject;
$dom = new \DomDocument();
$dom->loadHtml( mb_convert_encoding($content, 'HTML-ENTITIES', "UTF-8"), LIBXML_HTML_NOIMPLIED | LIBXML_HTML_NODEFDTD);
$images = $dom->getElementsByTagName('img');
foreach($images as $k => $img){
$data = $img->getAttribute('src');
list($type, $data) = explode(';', $data);
list(, $data) = explode(',', $data);
$data = base64_decode($data);
$image_name= "/img_topic/" . time().$k.'.png';
$path = public_path() . $image_name;
file_put_contents($path, $data);
$img->removeAttribute('src');
$img->setAttribute('src', $image_name);
}
$topic = topic::create([
'title' => $request->title,
'slug' => $slug,
'subtitle' => $request->subtitle,
'subject' => $dom->saveHTML(),
'user_id' => Auth::user()->id
]);
$topic->tags()->attach($request->tags);
$topic->save();
return redirect('forum')->with('msg', 'Topic Berhasil di Submit');
}
Untuk kode diatas sejauh ini tidak ada masalah, Topik/Artikel berikut gambarnya berhasil di submit. Untuk gambarnya tersimpan di folder Public/img_topic
2. Metode Update
public function update(Request $request, $id)
{
$this->validate($request, [
'title' => 'required|min:7',
'subtitle' => 'required|min:20',
'subject' => 'required|min:20'
]);
$request->tags = array_diff($request->tags, [0]);
if(empty($request->tags))
return redirect('forum/create')->withInput($request->input())->with('tag_error', 'Pilih minimal satu #Tag');
$content = $request->subject;
$dom = new \DomDocument();
$dom->loadHtml( mb_convert_encoding($content, 'HTML-ENTITIES', "UTF-8"), LIBXML_HTML_NOIMPLIED | LIBXML_HTML_NODEFDTD);
$images = $dom->getElementsByTagName('img');
foreach($images as $k => $img){
$data = $img->getAttribute('src');
list($type, $data) = explode(';', $data);
list(, $data) = explode(',', $data);
$data = base64_decode($data);
$image_name= "/img_topic/" . time().$k.'.png';
$path = public_path() . $image_name;
file_put_contents($path, $data);
$img->removeAttribute('src');
$img->setAttribute('src', $image_name);
}
$topic = topic::findOrFail($id);
if($topic->isOwner()) {
$topic->update([
'title' => $request->title,
'subtitle' => $request->subtitle,
'subject' => $dom->saveHTML()
]);
$topic->tags()->sync($request->tags);
}
else abort(403);
return redirect('forum')->with('msg', 'Topic Berhasil di Edit');
}
Untuk metode update ini muncul eror sebagai berikut:
(1/1) ErrorException Undefined offset: 1
in TopicController.php (line 187) at HandleExceptions->handleError(8, 'Undefined offset: 1', 'C:\\xampp\\htdocs\\roodie\\app\\Http\\Controllers\\TopicController.php', 187, array('request' => object(Request), 'id' => '50', 'content' => '<p><span style="color: rgb(85, 85, 85); font-family: Tahoma; font-size: 15px;">Migrations pada dasarnya bersifat agnostic, tak hanya spesifik di Laravel. Di beberapa framework PHP modern hampir semuanya memiliki fitur ini. Bahkan, bukan hanya di PHP saja adanya, di bahasa framework bahasa pemrograman lain pun tersedia. Migrations seolah menjadi standar dalam modifikasi basisdata secara on the fly.</span></p><p><img data-filename="yono-channel.png" style="width: 793.5px;" src="/img_topic/15247440120.png"><span style="color: rgb(85, 85, 85); font-family: Tahoma; font-size: 15px;"><br></span><br></p><p></p><p></p><p></p><p></p>', 'dom' => object(DOMDocument), 'images' => object(DOMNodeList), 'img' => object(DOMElement), 'k' => 0, 'data' => '/img_topic/15247440120.png', 'type' => '/img_topic/15247440120.png')) in TopicController.php (line 187)
Eror terdapat pada Line 187 yang ada pada Metode Update, berikut Line 187 :
foreach($images as $k => $img){
$data = $img->getAttribute('src');
list($type, $data) = explode(';', $data); //LINE 187
list(, $data) = explode(',', $data);
$data = base64_decode($data);
$image_name= "/img_topic/" . time().$k.'.png';
$path = public_path() . $image_name;
file_put_contents($path, $data);
$img->removeAttribute('src');
$img->setAttribute('src', $image_name);
}
Mohon dibantu untuk masalah ini, atau jika temen2 punya cara yang lebih baik dari cara yang saya gunakan di atas.. boleh donk bocorannya.. hehe Karna untuk cara diatas ketika user menghapus Topic/Artikelnya Gambar yang ada di folder "Public/img_topic" tidak ikut terhapus. Terimakasih.
Belum ada Jawaban. Jadi yang pertama Jawaban
Login untuk ikut Jawaban