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?

avatar sweetcorn123
@sweetcorn123

15 Kontribusi 2 Poin

Diperbarui 3 tahun yang lalu

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>

avatar ahanafi
@ahanafi

815 Kontribusi 554 Poin

Dipost 3 tahun yang lalu

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="{&quot;contentType&quot;:&quot;image/png&quot;,&quot;filename&quot;:&quot;database.png&quot;,&quot;filesize&quot;:8146,&quot;height&quot;:74,&quot;url&quot;:&quot;https://i.ibb.co/3Ym2znb/database.png&quot;,&quot;width&quot;:434}" data-trix-content-type="image/png" data-trix-attributes="{&quot;caption&quot;:&quot;Nah jadinya kayak gini kalo disimpan didalam database.&quot;,&quot;presentation&quot;:&quot;gallery&quot;}" 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>

avatar sweetcorn123
@sweetcorn123

15 Kontribusi 2 Poin

Dipost 3 tahun yang lalu

<div>Ohh disimpan sebagai data binary ya, coba cek artikel ini&nbsp;<a href="https://in4system.com/laraver-5-image-upload-to-blob-mysql/">https://in4system.com/laraver-5-image-upload-to-blob-mysql/</a>&nbsp;mungkin bisa membantu.</div>

avatar ahanafi
@ahanafi

815 Kontribusi 554 Poin

Dipost 3 tahun yang lalu

Tanggapan

terima kasih bantuannya ...

<div><figure data-trix-attachment="{&quot;contentType&quot;:&quot;image/png&quot;,&quot;filename&quot;:&quot;sc.png&quot;,&quot;filesize&quot;:9920,&quot;height&quot;:108,&quot;url&quot;:&quot;https://i.ibb.co/8dN5nyy/sc.png&quot;,&quot;width&quot;:432}" data-trix-content-type="image/png" data-trix-attributes="{&quot;presentation&quot;:&quot;gallery&quot;}" 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-&gt;validate($request, [ 'attachment' =&gt; 'required|max:5120' ]);

    $att = $request-&amp;gt;file(&#039;attachment&#039;)-&amp;gt;getRealPath();
    $file = Image::make($att);
    //Response::make($file-&amp;gt;encode(&#039;jpeg&#039;)); -&amp;gt; hasilnya error

    Attachment::create([
        &#039;anggota_id&#039; =&amp;gt; $request-&amp;gt;session()-&amp;gt;get(&#039;id&#039;),
        &#039;file&#039; =&amp;gt; $file
    ]);&lt;/pre&gt;
avatar sweetcorn123
@sweetcorn123

15 Kontribusi 2 Poin

Dipost 3 tahun yang lalu

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..&nbsp;<br><br></div><pre>$att = $request-&gt;file('attachment'); $files = pg_escape_bytea(file_get_contents($att));

$file = new Attachment; $file['anggota_id'] = $request-&gt;session()-&gt;get('id'); $file['file'] = $files; $file-&gt;save(); </pre>

avatar sweetcorn123
@sweetcorn123

15 Kontribusi 2 Poin

Dipost 3 tahun yang lalu

<div>Jika file yg diupload bereksistensi jpeg maka hasil filenya seperti ini<br><figure data-trix-attachment="{&quot;contentType&quot;:&quot;image/png&quot;,&quot;filename&quot;:&quot;error1.png&quot;,&quot;filesize&quot;:162748,&quot;height&quot;:789,&quot;url&quot;:&quot;https://i.ibb.co/qnJZkjJ/error1.png&quot;,&quot;width&quot;:691}" data-trix-content-type="image/png" data-trix-attributes="{&quot;presentation&quot;:&quot;gallery&quot;}" 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="{&quot;contentType&quot;:&quot;image/png&quot;,&quot;filename&quot;:&quot;error2-1.png&quot;,&quot;filesize&quot;:20052,&quot;height&quot;:549,&quot;url&quot;:&quot;https://i.ibb.co/8gwxfH4/error2-1.png&quot;,&quot;width&quot;:592}" data-trix-content-type="image/png" data-trix-attributes="{&quot;presentation&quot;:&quot;gallery&quot;}" 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>

avatar sweetcorn123
@sweetcorn123

15 Kontribusi 2 Poin

Dipost 3 tahun yang lalu

Login untuk ikut Jawaban