Postingan lainnya
Cara Upload File di Simpan di Dalam Database Tanpa Menggunakan Storage di Laravel
Apakah bisa mengupload file atau gambar yang langsung tersimpan di dalam database tanpa harus menggunakan storage di laravel? Jika bisa bagaimana caranya?
6 Jawaban:
<div>Ini maksudnya gimana ya?<br>Kan upload itu si user mengirim (unggah) file/dokumen ke aplikasi. Cara kerjanya, file/dokumen yang diupload itu disimpan di folder server aplikasi, dan "nama file/dokumen" yang diupload itu disimpan ke dalam database.<br>Kalo mengenai storage, di laravel sendiri punya banyak opsi buat nyimpen file/dokumen yang user upload melalui aplikasi kita. Laravel nyedian default nya nyimpen file yang diupload itu ke folder yang ada di aplikasi kita, bisa juga diganti sperti menyimpan di cloud storage, seperti AWS, IBM Cloud, atau bahkan juga bisa disimpan ke google drive. Tapi tetap saja, nama file (atau URL) yang diupload itu disimpannya di database.</div>
Tanggapan
Nah yang saya inginkan itu langsung disimpan didalam database bukan hanya nama filenya tetapi file itu di database. Karena di database saya sudah buat column dg tipe data blob.
<div><figure data-trix-attachment="{"contentType":"image/png","filename":"database.png","filesize":8146,"height":74,"url":"https://i.ibb.co/3Ym2znb/database.png","width":434}" data-trix-content-type="image/png" data-trix-attributes="{"caption":"Nah jadinya kayak gini kalo disimpan didalam database.","presentation":"gallery"}" class="attachment attachment--preview attachment--png"><img src="https://i.ibb.co/3Ym2znb/database.png" width="434" height="74"><figcaption class="attachment__caption attachment__caption--edited">Nah jadinya kayak gini kalo disimpan didalam database.</figcaption></figure></div>
<div>Ohh disimpan sebagai data binary ya, coba cek artikel ini <a href="https://in4system.com/laraver-5-image-upload-to-blob-mysql/">https://in4system.com/laraver-5-image-upload-to-blob-mysql/</a> mungkin bisa membantu.</div>
Tanggapan
terima kasih bantuannya ...
<div><figure data-trix-attachment="{"contentType":"image/png","filename":"sc.png","filesize":9920,"height":108,"url":"https://i.ibb.co/8dN5nyy/sc.png","width":432}" data-trix-content-type="image/png" data-trix-attributes="{"presentation":"gallery"}" class="attachment attachment--preview attachment--png"><img src="https://i.ibb.co/8dN5nyy/sc.png" width="432" height="108"><figcaption class="attachment__caption"><span class="attachment__name">sc.png</span></figcaption></figure><br>kak @ahanafi hasilnya kayak gini, gak kebaca filenya...<br><br>ini kodinganku</div><pre>$this->validate($request, [ 'attachment' => 'required|max:5120' ]);
$att = $request-&gt;file('attachment')-&gt;getRealPath();
$file = Image::make($att);
//Response::make($file-&gt;encode('jpeg')); -&gt; hasilnya error
Attachment::create([
'anggota_id' =&gt; $request-&gt;session()-&gt;get('id'),
'file' =&gt; $file
]);</pre>
Tanggapan
Apakah filenya berhasil diupload ke database?
@ahanafi alhamdulillah sudah bisa kak, saya menggunakan function pg_escape_bytea...
jangan lupa, share jawabannya ke sini, dan jadikan sebagai jawaban terbaik, agar forum dinyatakan selesai, agar nanti member yg lain, yg punya kasus yg sama, mungkin bisa terbantu,
<div>Saya menggunakan cara seperti ini, tapi ini masih ada debug. Memang file sudah tersimpan didatabase tapi ketika saya ingin download file tsb dari database. Hasil download tsb error.. <br><br></div><pre>$att = $request->file('attachment'); $files = pg_escape_bytea(file_get_contents($att));
$file = new Attachment; $file['anggota_id'] = $request->session()->get('id'); $file['file'] = $files; $file->save(); </pre>
<div>Jika file yg diupload bereksistensi jpeg maka hasil filenya seperti ini<br><figure data-trix-attachment="{"contentType":"image/png","filename":"error1.png","filesize":162748,"height":789,"url":"https://i.ibb.co/qnJZkjJ/error1.png","width":691}" data-trix-content-type="image/png" data-trix-attributes="{"presentation":"gallery"}" class="attachment attachment--preview attachment--png"><img src="https://i.ibb.co/qnJZkjJ/error1.png" width="691" height="789"><figcaption class="attachment__caption"><span class="attachment__name">error1.png</span></figcaption></figure><br><br>Namun jika file yg diupload selain bereksistensi jpeg, hasilnya seperti ini..</div><div><figure data-trix-attachment="{"contentType":"image/png","filename":"error2-1.png","filesize":20052,"height":549,"url":"https://i.ibb.co/8gwxfH4/error2-1.png","width":592}" data-trix-content-type="image/png" data-trix-attributes="{"presentation":"gallery"}" class="attachment attachment--preview attachment--png"><img src="https://i.ibb.co/8gwxfH4/error2-1.png" width="592" height="549"><figcaption class="attachment__caption"><span class="attachment__name">error2-1.png</span></figcaption></figure><br><br></div><div><br></div>