Minggu, 23 November 2025

function upload php

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.

0 komentar:

Posting Komentar

 
Design by Free WordPress Themes | Bloggerized by Lasantha - Premium Blogger Themes | Press Release Distribution