Cara Mudah Membatasi Ukuran File Upload Biar Server Gak Jebol
Pernah ngalamin upload file terus tiba-tiba error? Atau lebih parah, server jadi lemot gara-gara ada yang ngirim file video 500 MB? Nah, membatasi ukuran file upload itu penting banget, terutama kalau kamu punya website atau aplikasi yang menerima kiriman dari pengguna.
Gak perlu khawatir, caranya gampang kok. Yuk, kita bahas beberapa metode sederhana yang bisa langsung kamu praktekkan.
1. Batasi dari Sisi Server (PHP)
Kalau website kamu pakai PHP, caranya tinggal atur file `php.ini`. Coba cari baris ini:
“`
upload_max_filesize = 2M
post_max_size = 8M
“`
Angka itu bisa kamu sesuaikan. Misalnya mau maksimal 5 MB, tinggal ubah jadi `5M`. Jangan lupa juga `post_max_size`-nya harus lebih besar dari `upload_max_filesize`. Setelah diubah, restart server atau reload Apache/Nginx.
Gak punya akses ke `php.ini`? Tenang, bisa pakai `.htaccess`:
“`
php_value upload_max_filesize 5M
php_value post_max_size 10M
“`
2. Kalau Pakai WordPress
WordPress punya batasan bawaan di `wp-config.php`. Kamu bisa tambahin kode ini sebelum baris “That’s all, stop editing!”:
“`php
@ini_set( ‘upload_max_size’ , ‘5M’ );
@ini_set( ‘post_max_size’, ’10M’ );
@ini_set( ‘memory_limit’, ‘256M’ );
“`
Tapi kadang host gak ngizinin. Alternatifnya, install plugin gratis kayak “Limit Max Upload Size”. Tinggal geser slider, beres.
3. Batasi dari Sisi HTML dan JavaScript
Ini cara paling sederhana. Di form upload, tambahin atribut `accept` dan validasi pakai JavaScript:
“`html
“`
Lalu JavaScript-nya:
“`javascript
function checkSize(input) {
const fileSize = input.files[0].size; // dalam byte
const maxSize = 2 1024 1024; // 2MB
if (fileSize > maxSize) {
alert(‘File terlalu besar! Maksimal 2MB.’);
input.value = ”;
}
}
“`
Tapi ingat, validasi client-side bisa dimanipulasi, jadi tetap harus diperkuat di server.
4. Kalau Pakai Node.js (Express & Multer)
Buat yang pake Node.js, pakai library `multer` dan set `limits`:
“`javascript
const multer = require(‘multer’);
const upload = multer({
dest: ‘uploads/’,
limits: { fileSize: 2 1024 1024 } // 2MB
});
“`
Kalau ada file yang lebih besar, otomatis error `LIMIT_FILE_SIZE`.
5. Untuk Aplikasi Web Lain (Python Django, Ruby on Rails, dll)
– Django: Atur `FILE_UPLOAD_MAX_MEMORY_SIZE` di settings.
– Rails: Tambah `config.max_file_size = 5.megabytes` di initializer.
– Laravel: Validasi di request, misalnya `’file’ => ‘max:2048’` (2MB).
Tips Tambahan Biar Makin Aman
– Kasih pesan error yang jelas: Jangan cuma ngasih kode 500. Beritahu user “File maksimal 2MB”.
– Batasi tipe file sekalian: Jangan cuma ukuran, filter ekstensi juga (misal cuma .jpg, .png).
– Cek di tingkat server juga: Kadang hosting punya batasan sendiri. Cek panel cPanel atau dashboard hosting.
– Pakai CDN atau cloud storage: Untuk file besar, suruh user upload langsung ke S3 atau Cloudinary. Server lo gak kena beban.
Penutup
Intinya, membatasi ukuran file upload itu gampang dan penting. Server jadi lebih stabil, bandwidth hemat, dan user juga gak bingung kenapa upload gagal. Mulai dari metode yang paling simpel—validasi di form—sampai konfigurasi server yang lebih dalam.
Cobain salah satu cara di atas, dan lihat sendiri bedanya. Selamat mencoba!