Belajar Cara Upload dan Memindahkan File atau Foto di Laravel

Posted on Posted in Artikel, Laravel

Mengupload file atau foto merupakan hal yang sering dilakukan pada dunia website. Nah, pada artikel kali ini kita akan belajar bagaimana cara Mengupload dan Memindahkan File atau Foto di Laravel. Ayo kita mulai! 🙂

Pertama – tama, kita perlu membuat form simple untuk upload file beserta dengan dua route. Route pertama digunakan untuk view dari form, sedangkan route kedua digunakan untuk submit data form.

Buat view dengan nama form.blade.php pada folder view di laravel, dan isikan kode seperti ini :

<!doctype html>

<html lang=”en”>

<head>

<meta charset=”UTF-8″>

<title>Laravel</title>

</head>

<body>

{{ Form::open(array(‘url’=>’form-submit’,’files’=>true)) }}

{{ Form::label(‘file’,’File’,array(‘id’=>”,’class’=>”)) }}

{{ Form::file(‘file’,”,array(‘id’=>”,’class’=>”)) }}

<br/>

<!– submit buttons –>

{{ Form::submit(‘Save’) }}

<!– reset buttons –>

{{ Form::reset(‘Reset’) }}

{{ Form::close() }}

</body>

</html>

Kode diatas menggunakan Form Facade, sehingga penulisan kodenya menjai lebih mudah. Selanjutnya, buka file route dilaravel dan tambahkan kode berikut :

Route::get(‘form’, function(){

return view(‘form’);

});

Route::any(‘form-submit’, function(){

var_dump(Input::file(‘file’));

});

Nah, kedua route diatas akan meng-handle form kita nantinya. Pada dasarnya, File yang diupload diphp tidak dimasukkan ke array $_GET atau $_POST tetapi dimasukkan ke array $_FILES. Di Laravel kita dapat menggunakan method Input::file() untuk mengakses file yang sudah diupload.

Pada route kedua kita menampilkan isi dari method Input::file() dangan menggunakan method var_dump(). Mari kita coba upload sebuah file/foto, untuk mengecek isi dari method file() tersebut.

object(Symfony\Component\HttpFoundation\File\UploadedFile)[9]

private ‘test’ => boolean false

private ‘originalName’ => string ‘test.jpg’ (length=22)

private ‘mimeType’ => string ‘image/jpeg’ (length=10)

Anda mungkin akan mendapatkan hasil keluaran seperti diatas(mungkin mirip/tidak sama). Jika anda lihat kebawah lagi anda akan menemukan banyak method lainnya lagi. Mari kita coba beberapa method tersebut. Salah satunya method getFilename() :

Input::file(‘file’)->getFilename();

Method ini akan menampilkan nama sementara dan juga lokasi sementara dari file yang diupload. Selanjutnya ada method getClientOriginalName() :

Input::file(‘file’)->getClientOriginalName();

Method ini digunakan untuk menampilkan nama original file ketika file diupload

Input::file(‘file’)->getClientSize();

Method getClientSize() digunakan untuk menampilkan ukuran file yang diupload dalam byte.

Input::file(‘file’)->guessClientExtension();

Ada juga method guessClientExtension(), method ini digunakan untuk menampilkan extensi  dari file yang upload. Sebenarnya yang paling perlu anda perhatikan disini adalah method move(). Karena method inilah yang akan kita gunakan untuk memindahkan/meng-upload file kita. Method move() umumnya mempunyai 2 parameter yaitu string tujuan upload dan nama file.

Mari kita ubah kode route kita sebelumnya mejadi seperti ini :

Route::any(‘form-submit’, function(){

return Input::file(‘file’)->move(__DIR__.’/storage/’,Input::file(‘file’)->getClientOriginalName());

Nah! Sekarang coba upload file di form anda dan submit. Maka file akan terupload dan dipindahkan ke direktori /storage dilaravel. Selamat Mecoba! 🙂

Sekian. 🙂