{"id":58126,"date":"2025-10-17T08:06:22","date_gmt":"2025-10-17T01:06:22","guid":{"rendered":"https:\/\/www.rumahweb.com\/journal\/?p=58126"},"modified":"2026-02-16T10:12:00","modified_gmt":"2026-02-16T03:12:00","slug":"belajar-laravel-bagian-24","status":"publish","type":"post","link":"https:\/\/www.rumahweb.com\/journal\/belajar-laravel-bagian-24\/","title":{"rendered":"Belajar Laravel Bagian 24: Cara Membuat Fitur Upload File"},"content":{"rendered":"\n<p>Pada seri Belajar Laravel <a href=\"https:\/\/www.rumahweb.com\/journal\/belajar-laravel-bagian-23\/\" target=\"_blank\" rel=\"noopener\" title=\"\"><strong>Bagian 23<\/strong><\/a>, kita telah mempelajari cara menggunakan Bootstrap di Laravel untuk mempercantik tampilan aplikasi atau website. Nah, pada lanjutan Belajar Laravel Bagian 24 ini, kita akan membahas cara membuat fitur upload file di Laravel secara praktis dan aman.<\/p>\n\n\n\n<p>Seperti yang telah kita pahami dalam proses pengembangan aplikasi berbasis web, fitur upload file merupakan komponen penting yang tidak boleh diabaikan. Mulai dari kebutuhan untuk mengunggah foto profil, dokumen, hingga berbagai file pendukung lainnya, fitur ini hampir selalu dibutuhkan. <\/p>\n\n\n\n<p>Laravel, sebagai <em>framework <\/em>PHP yang powerful, menyediakan cara yang sederhana, aman, dan efisien untuk menangani proses <em>upload <\/em>tersebut. <\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Cara Membuat Fitur Upload File<\/h2>\n\n\n\n<p>Berikut langkah demi langkah untuk membuat fitur upload file di Laravel secara mudah dan aman.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Step 1. Persiapan Project<\/h3>\n\n\n\n<p>Bila sebelumnya Anda sudah mengikuti series tutorial laravel dari kami, Anda dapat melanjutkan dengan projek tersebut. Namun, bila belum mengikutinya, silakan Anda buat projek baru dan install laravel.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>composer create-project --prefer-dist laravel\/laravel .<\/code><\/pre>\n\n\n\n<p>Jalankan server:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>php artisan serve<\/code><\/pre>\n\n\n\n<p>Selanjutnya akses file laravel yang Anda install melalui browser di alamat <code>http:\/\/127.0.0.1:8000<\/code>.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Step 2. Buat Route<\/h3>\n\n\n\n<p>Selanjutnya, edit file <strong>routes\/web.php<\/strong>&nbsp;menjadi berikut:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>use Illuminate\\Http\\Request;\nuse Illuminate\\Support\\Facades\\Storage;\n\nRoute::get('\/upload', function () {\n    return view('upload');\n});\n\nRoute::post('\/upload', function (Request $request) {\n    \/\/ Validasi file\n    $request-&gt;validate(&#91;\n        'file' =&gt; 'required|mimes:jpg,jpeg,png,pdf|max:2048'\n    ]);\n\n    \/\/ Simpan file ke storage\/app\/public\/uploads\n    $path = $request-&gt;file('file')-&gt;store('uploads', 'public');\n\n    return back()-&gt;with('success', 'File berhasil diupload!')-&gt;with('file', $path);\n});\n<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\">Step <strong>3.<\/strong> Buat View menggunakan (<em>Bootstrap<\/em>)<\/h3>\n\n\n\n<p>Kemudian, buat file untuk menampilkan form upload di&nbsp; <em>resources\/views\/upload.blade.php<\/em> dengan <em>script <\/em>berikut.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>&lt;!DOCTYPE html&gt;\n&lt;html&gt;\n&lt;head&gt;\n    &lt;title&gt;Upload File Laravel&lt;\/title&gt;\n    &lt;!-- Bootstrap CDN --&gt;\n    &lt;link href=\"https:\/\/cdn.jsdelivr.net\/npm\/bootstrap@5.3.3\/dist\/css\/bootstrap.min.css\" rel=\"stylesheet\"&gt;\n&lt;\/head&gt;\n&lt;body&gt;\n&lt;div class=\"container mt-5\"&gt;\n    &lt;h2 class=\"mb-4\"&gt;Upload File dengan Laravel&lt;\/h2&gt;\n\n    {{-- Tampilkan pesan sukses --}}\n    @if(session('success'))\n        &lt;div class=\"alert alert-success\"&gt;\n            {{ session('success') }}\n            &lt;br&gt;\n            &lt;strong&gt;Path:&lt;\/strong&gt; {{ session('file') }}\n        &lt;\/div&gt;\n    @endif\n\n    {{-- Tampilkan error --}}\n    @if($errors-&gt;any())\n        &lt;div class=\"alert alert-danger\"&gt;\n            &lt;ul class=\"mb-0\"&gt;\n                @foreach ($errors-&gt;all() as $err)\n                    &lt;li&gt;{{ $err }}&lt;\/li&gt;\n                @endforeach\n            &lt;\/ul&gt;\n        &lt;\/div&gt;\n    @endif\n\n    &lt;!-- Form Upload --&gt;\n    &lt;div class=\"card shadow\"&gt;\n        &lt;div class=\"card-body\"&gt;\n            &lt;form action=\"\/upload\" method=\"POST\" enctype=\"multipart\/form-data\"&gt;\n                @csrf\n                &lt;div class=\"mb-3\"&gt;\n                    &lt;label class=\"form-label\"&gt;Pilih File&lt;\/label&gt;\n                    &lt;input type=\"file\" name=\"file\" class=\"form-control\"&gt;\n                &lt;\/div&gt;\n                &lt;button type=\"submit\" class=\"btn btn-primary\"&gt;Upload&lt;\/button&gt;\n            &lt;\/form&gt;\n        &lt;\/div&gt;\n    &lt;\/div&gt;\n&lt;\/div&gt;\n\n&lt;!-- Bootstrap JS --&gt;\n&lt;script src=\"https:\/\/cdn.jsdelivr.net\/npm\/bootstrap@5.3.3\/dist\/js\/bootstrap.bundle.min.js\"&gt;&lt;\/script&gt;\n&lt;\/body&gt;\n&lt;\/html&gt;\n<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\">Step 4. Atur Storage Link<\/h3>\n\n\n\n<p>Agar file dapat diakses melalui <em>browser<\/em>, silakan buat <em>symlink <\/em>ke folder <code>public\/storage<\/code> gunakan perintah berikut:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>php artisan storage:link<\/code><\/pre>\n\n\n\n<figure class=\"wp-block-image size-large\"><a href=\"https:\/\/www.rumahweb.com\/journal\/wp-content\/uploads\/2025\/10\/membuat-storage-link-laravel.png\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"89\" src=\"https:\/\/www.rumahweb.com\/journal\/wp-content\/uploads\/2025\/10\/membuat-storage-link-laravel-1024x89.png\" alt=\"membuat storage link laravel - belajar laravel\" class=\"wp-image-58127\" srcset=\"https:\/\/www.rumahweb.com\/journal\/wp-content\/uploads\/2025\/10\/membuat-storage-link-laravel-1024x89.png 1024w, https:\/\/www.rumahweb.com\/journal\/wp-content\/uploads\/2025\/10\/membuat-storage-link-laravel-300x26.png 300w, https:\/\/www.rumahweb.com\/journal\/wp-content\/uploads\/2025\/10\/membuat-storage-link-laravel-768x67.png 768w, https:\/\/www.rumahweb.com\/journal\/wp-content\/uploads\/2025\/10\/membuat-storage-link-laravel-370x32.png 370w, https:\/\/www.rumahweb.com\/journal\/wp-content\/uploads\/2025\/10\/membuat-storage-link-laravel-270x23.png 270w, https:\/\/www.rumahweb.com\/journal\/wp-content\/uploads\/2025\/10\/membuat-storage-link-laravel-570x50.png 570w, https:\/\/www.rumahweb.com\/journal\/wp-content\/uploads\/2025\/10\/membuat-storage-link-laravel-740x64.png 740w, https:\/\/www.rumahweb.com\/journal\/wp-content\/uploads\/2025\/10\/membuat-storage-link-laravel.png 1218w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/a><\/figure>\n\n\n\n<p>Dengan melakukan <em>symlink<\/em>, maka file yang diupload akan tersimpan di direktori:<br \/><code>storage\/app\/public\/uploads\/<\/code><\/p>\n\n\n\n<p>Lalu, Anda dapat mengecek file yang baru saja di upload melalui url <code>http:\/\/127.0.0.1:8000\/storage\/uploads\/namafile.png<\/code><\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Step 5. Pengujian<\/h3>\n\n\n\n<p>Terakhir, mari kita lakukan pengujian fitur upload di Laravel. Caranya, silakan buka halaman <code>http:\/\/127.0.0.1:8000\/upload<\/code><\/p>\n\n\n\n<p>Pilih file yang akan Anda upload (misalnya file gambar atau file PDF), kemudian klik <strong>Upload<\/strong>.<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><a href=\"https:\/\/www.rumahweb.com\/journal\/wp-content\/uploads\/2025\/10\/upload-file-menggunakan-laravel.png\"><img loading=\"lazy\" decoding=\"async\" width=\"716\" height=\"363\" src=\"https:\/\/www.rumahweb.com\/journal\/wp-content\/uploads\/2025\/10\/upload-file-menggunakan-laravel.png\" alt=\"upload file menggunakan laravel\" class=\"wp-image-58128\" srcset=\"https:\/\/www.rumahweb.com\/journal\/wp-content\/uploads\/2025\/10\/upload-file-menggunakan-laravel.png 716w, https:\/\/www.rumahweb.com\/journal\/wp-content\/uploads\/2025\/10\/upload-file-menggunakan-laravel-300x152.png 300w, https:\/\/www.rumahweb.com\/journal\/wp-content\/uploads\/2025\/10\/upload-file-menggunakan-laravel-370x188.png 370w, https:\/\/www.rumahweb.com\/journal\/wp-content\/uploads\/2025\/10\/upload-file-menggunakan-laravel-270x137.png 270w, https:\/\/www.rumahweb.com\/journal\/wp-content\/uploads\/2025\/10\/upload-file-menggunakan-laravel-570x289.png 570w\" sizes=\"auto, (max-width: 716px) 100vw, 716px\" \/><\/a><\/figure>\n\n\n\n<p>Bila sukses, maka akan tampil alert sukses + path file seperti gambar berikut.<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><a href=\"https:\/\/www.rumahweb.com\/journal\/wp-content\/uploads\/2025\/10\/berhasil-upload-file-di-Laravel.png\"><img loading=\"lazy\" decoding=\"async\" width=\"697\" height=\"440\" src=\"https:\/\/www.rumahweb.com\/journal\/wp-content\/uploads\/2025\/10\/berhasil-upload-file-di-Laravel.png\" alt=\"\" class=\"wp-image-58129\" srcset=\"https:\/\/www.rumahweb.com\/journal\/wp-content\/uploads\/2025\/10\/berhasil-upload-file-di-Laravel.png 697w, https:\/\/www.rumahweb.com\/journal\/wp-content\/uploads\/2025\/10\/berhasil-upload-file-di-Laravel-300x189.png 300w, https:\/\/www.rumahweb.com\/journal\/wp-content\/uploads\/2025\/10\/berhasil-upload-file-di-Laravel-370x234.png 370w, https:\/\/www.rumahweb.com\/journal\/wp-content\/uploads\/2025\/10\/berhasil-upload-file-di-Laravel-270x170.png 270w, https:\/\/www.rumahweb.com\/journal\/wp-content\/uploads\/2025\/10\/berhasil-upload-file-di-Laravel-570x360.png 570w\" sizes=\"auto, (max-width: 697px) 100vw, 697px\" \/><\/a><\/figure>\n\n\n\n<p>Silakan masuk ke folder <code>storage\/upload<\/code> untuk cek file yang baru saja Anda upload.<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><a href=\"https:\/\/www.rumahweb.com\/journal\/wp-content\/uploads\/2025\/10\/cek-hasil-upload-file-di-laravel.png\"><img loading=\"lazy\" decoding=\"async\" width=\"786\" height=\"310\" src=\"https:\/\/www.rumahweb.com\/journal\/wp-content\/uploads\/2025\/10\/cek-hasil-upload-file-di-laravel.png\" alt=\"cek hasil upload file di laravel\" class=\"wp-image-58130\" srcset=\"https:\/\/www.rumahweb.com\/journal\/wp-content\/uploads\/2025\/10\/cek-hasil-upload-file-di-laravel.png 786w, https:\/\/www.rumahweb.com\/journal\/wp-content\/uploads\/2025\/10\/cek-hasil-upload-file-di-laravel-300x118.png 300w, https:\/\/www.rumahweb.com\/journal\/wp-content\/uploads\/2025\/10\/cek-hasil-upload-file-di-laravel-768x303.png 768w, https:\/\/www.rumahweb.com\/journal\/wp-content\/uploads\/2025\/10\/cek-hasil-upload-file-di-laravel-370x146.png 370w, https:\/\/www.rumahweb.com\/journal\/wp-content\/uploads\/2025\/10\/cek-hasil-upload-file-di-laravel-270x106.png 270w, https:\/\/www.rumahweb.com\/journal\/wp-content\/uploads\/2025\/10\/cek-hasil-upload-file-di-laravel-570x225.png 570w, https:\/\/www.rumahweb.com\/journal\/wp-content\/uploads\/2025\/10\/cek-hasil-upload-file-di-laravel-740x292.png 740w\" sizes=\"auto, (max-width: 786px) 100vw, 786px\" \/><\/a><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\">Penutup<\/h2>\n\n\n\n<p>Selamat! Hingga tahap ini, Anda telah berhasil membuat fitur <em>upload <\/em>file di Laravel dengan mudah. Dengan memahami langkah-langkah yang telah dibahas, kini Anda dapat mengimplementasikan fitur ini ke dalam berbagai proyek web yang sedang dikembangkan.<\/p>\n\n\n\n<p>Ke depannya, Anda bisa terus bereksplorasi dengan menambahkan validasi yang lebih kompleks, mengintegrasikan penyimpanan ke layanan cloud server, atau meningkatkan aspek keamanan agar sistem <em>upload <\/em>semakin optimal dan profesional.<\/p>\n\n\n\n<p>Demikian seri belajar Laravel bagian 24 tentang membuat fitur upload file di Laravel. Dalam seri belajar Laravel selanjutnya, kita akan belajar cara upload file ke database Laravel. Ikuti terus tutorial belajar Laravel dari Rumahweb, untuk meningkatkan kemampuan Anda dalam membuat aplikasi berbasis Laravel. Semoga bermanfaat.<\/p>\n\n\n\n<p><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Pada seri Belajar Laravel Bagian 23, kita telah mempelajari cara menggunakan Bootstrap di Laravel untuk mempercantik tampilan aplikasi atau website. Nah, pada lanjutan Belajar Laravel Bagian 24 ini, kita akan membahas cara membuat fitur upload file di Laravel secara praktis dan aman. Seperti yang telah kita pahami dalam proses pengembangan aplikasi berbasis web, fitur upload [&hellip;]<\/p>\n","protected":false},"author":319,"featured_media":58353,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"jetpack_post_was_ever_published":false,"_jetpack_newsletter_access":"","_jetpack_dont_email_post_to_subs":false,"_jetpack_newsletter_tier_id":0,"_jetpack_memberships_contains_paywalled_content":false,"_jetpack_memberships_contains_paid_content":false,"footnotes":"","jetpack_publicize_message":"","jetpack_publicize_feature_enabled":true,"jetpack_social_post_already_shared":true,"jetpack_social_options":{"image_generator_settings":{"template":"highway","default_image_id":0,"font":"","enabled":false},"version":2}},"categories":[7],"tags":[1587,796,1497],"class_list":{"0":"post-58126","1":"post","2":"type-post","3":"status-publish","4":"format-standard","5":"has-post-thumbnail","7":"category-web-programming","8":"tag-belajar-laravel","9":"tag-laravel","10":"tag-tutorial-laravel"},"aioseo_notices":[],"jetpack_publicize_connections":[],"jetpack_featured_media_url":"https:\/\/www.rumahweb.com\/journal\/wp-content\/uploads\/2025\/10\/banner-belajar-laravel-bagian-24.png","jetpack_shortlink":"https:\/\/wp.me\/p8n3G7-f7w","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/www.rumahweb.com\/journal\/wp-json\/wp\/v2\/posts\/58126","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.rumahweb.com\/journal\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.rumahweb.com\/journal\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.rumahweb.com\/journal\/wp-json\/wp\/v2\/users\/319"}],"replies":[{"embeddable":true,"href":"https:\/\/www.rumahweb.com\/journal\/wp-json\/wp\/v2\/comments?post=58126"}],"version-history":[{"count":9,"href":"https:\/\/www.rumahweb.com\/journal\/wp-json\/wp\/v2\/posts\/58126\/revisions"}],"predecessor-version":[{"id":61821,"href":"https:\/\/www.rumahweb.com\/journal\/wp-json\/wp\/v2\/posts\/58126\/revisions\/61821"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.rumahweb.com\/journal\/wp-json\/wp\/v2\/media\/58353"}],"wp:attachment":[{"href":"https:\/\/www.rumahweb.com\/journal\/wp-json\/wp\/v2\/media?parent=58126"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.rumahweb.com\/journal\/wp-json\/wp\/v2\/categories?post=58126"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.rumahweb.com\/journal\/wp-json\/wp\/v2\/tags?post=58126"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}