Berikut contoh cara mengubah script upload Anda menjadi sebuah function yang bisa dipakai berulang, sehingga Anda tinggal memanggilnya untuk setiap file yang ingin di-upload.
✅ 1. Buat Function Upload
function uploadFoto($field_name, $noDaftar, $conn, $folder = '../foto/') {
// Ekstensi diperbolehkan
$ekstensi_diperbolehkan = array('png','jpg','jpeg','gif');
// Nama file baru digabung dengan noDaftar
$nama_file_asli = $_FILES[$field_name]['name'];
$nama_file = $noDaftar . '_' . $nama_file_asli;
$x = explode('.', $nama_file_asli);
$ekstensi = strtolower(end($x));
$ukuran = $_FILES[$field_name]['size'];
$file_tmp = $_FILES[$field_name]['tmp_name'];
// Cek ekstensi
if (!in_array($ekstensi, $ekstensi_diperbolehkan)) {
return array('status'=>false, 'pesan'=>'Ekstensi tidak diperbolehkan');
}
// Cek ukuran file
if ($ukuran > 5044070) {
return array('status'=>false, 'pesan'=>'Ukuran file terlalu besar');
}
// Upload file
if (move_uploaded_file($file_tmp, $folder . $nama_file)) {
// Path file untuk disimpan ke database
$foto_path = $folder . $nama_file;
// Query update
$upd = mysqli_query($conn,
"UPDATE tbl_santri_baru SET b_foto='$foto_path' WHERE no_daftar='$noDaftar'"
);
if ($upd) {
return array('status'=>true, 'pesan'=>'Upload berhasil');
} else {
return array('status'=>false, 'pesan'=>'Gagal update database');
}
} else {
return array('status'=>false, 'pesan'=>'Gagal upload file');
}
}
✅ 2. Cara Memanggil Function
Misalnya Anda punya 3 file: b_foto, kk_foto, akta_foto
if (isset($_POST['submit'])) {
$noDaftar = $_GET['id'];
$hasil1 = uploadFoto('b_foto', $noDaftar, $conn);
$hasil2 = uploadFoto('kk_foto', $noDaftar, $conn);
$hasil3 = uploadFoto('akta_foto', $noDaftar, $conn);
// Contoh menampilkan hasil
if ($hasil1['status']) echo $hasil1['pesan'];
else echo $hasil1['pesan'];
if ($hasil2['status']) echo $hasil2['pesan'];
else echo $hasil2['pesan'];
if ($hasil3['status']) echo $hasil3['pesan'];
else echo $hasil3['pesan'];
}
✅ 3. Jika Mau Update Kolom Berbeda di Database
Anda bisa tambahkan nama kolom di parameter function:
function uploadFoto($field_name, $nama_kolom, $noDaftar, $conn, $folder='../foto/')
{
...
// UPDATE dinamis
$upd = mysqli_query($conn,
"UPDATE tbl_santri_baru SET $nama_kolom='$foto_path' WHERE no_daftar='$noDaftar'"
);
}
Cara memanggil:
uploadFoto('b_foto', 'b_foto', $noDaftar, $conn);
uploadFoto('kk_foto', 'foto_kk', $noDaftar, $conn);
uploadFoto('akta_foto', 'foto_akta', $noDaftar, $conn);
🔥 Hasilnya
- Script upload jadi rapi
- Mudah dipanggil berkali-kali
- Bisa upload banyak berkas hanya dengan memanggil function
- Maintenance lebih mudah
Kalau Anda mau, saya bisa:
✅ Membuatkan versi yang otomatis membangkitkan nama file unik
✅ Membuatkan versi yang bisa upload banyak file sekaligus (multiple input)
✅ Membuatkan versi OOP agar lebih profesional
Tinggal bilang saja mau yang mana.
November 23, 2025


