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

14 Kontribusi 2 Poin


Jawaban

Ini maksudnya gimana ya?
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.
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.
avatar ahanafi

@ahanafi

760 Kontribusi 498 Poin

  • 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. - @sweetcorn123


database.pngNah jadinya kayak gini kalo disimpan didalam database.
avatar sweetcorn123

@sweetcorn123

14 Kontribusi 2 Poin


Ohh disimpan sebagai data binary ya, coba cek artikel ini https://in4system.com/laraver-5-image-upload-to-blob-mysql/ mungkin bisa membantu.
avatar ahanafi

@ahanafi

760 Kontribusi 498 Poin


sc.pngsc.png
kak @ahanafi hasilnya kayak gini, gak kebaca filenya...

ini kodinganku
$this->validate($request, [
            'attachment' => 'required|max:5120'
        ]);

        $att = $request->file('attachment')->getRealPath();
        $file = Image::make($att);
        //Response::make($file->encode('jpeg')); -> hasilnya error

        Attachment::create([
            'anggota_id' => $request->session()->get('id'),
            'file' => $file
        ]);
avatar sweetcorn123

@sweetcorn123

14 Kontribusi 2 Poin

  • Apakah filenya berhasil diupload ke database? - @ahanafi
  • @ahanafi alhamdulillah sudah bisa kak, saya menggunakan function pg_escape_bytea... - @sweetcorn123
  • 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, - @ahanafi


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.. 

$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(); 
avatar sweetcorn123

@sweetcorn123

14 Kontribusi 2 Poin


Jika file yg diupload bereksistensi jpeg maka hasil filenya seperti ini
error1.pngerror1.png

Namun jika file yg diupload selain bereksistensi jpeg, hasilnya seperti ini..error2-1.pngerror2-1.png


avatar sweetcorn123

@sweetcorn123

14 Kontribusi 2 Poin


Login untuk gabung berdiskusi