PHP Form Upload File Sederhana

20 Jan 2010

Langkah-langkah membuat form upload file sederhana dengan PHP (tanpa JavaScript/AJAX):

  1. Form Upload
    <form enctype="multipart/form-data" action="" method="POST">
    	<input type="hidden" name="MAX_FILE_SIZE" value="30000" />
    	File: <input name="userfile" type="file" />
    	<input type="submit" value="Send File" />
    </form>
    

    Hal yang esensial (sangat penting) dari form ini adalah:

    • atribut method, value: “POST”
    • atribut enctype, value: “multipart/form-data”
    • hidden field MAX_FILE_SIZE, value: menyatakan pembatasan ukuran file (dalam byte) yang diterima
    • field dengan type=“file”, menyatakan lokasi file (di komputer lokal anda) yang akan di-upload
  2. Validasi Upload dan pindah/salin file
    <?php
    $uploaddir = '/var/www/uploads/';
    $uploadfile = $uploaddir . basename($_FILES['userfile']['name']);
    echo '<pre>';
    if (move_uploaded_file($_FILES['userfile']['tmp_name'], $uploadfile)) {
    	echo "File valid, berhasil di-upload.n";
    } else {
    	echo "File tidak berhasil diupload!n";
    }
    echo 'Informasi file:';
    print_r($_FILES);
    print "</pre>";
    ?>
    

    Hal yang perlu diperhatikan:

    • Variabel $_FILES merupakan variabel khusus di PHP untuk menangani input bertype file. Variabel ini bekerja seperti variabel $_POST. Variabel $_FILES merupakan array 2 dimensi, indeks pertamanya mengacu pada name pada form, sedangkan indeks kedua adalah ‘name’ (nama file asli di client), ‘type’ (tipe file, contoh: “image/gif”), ’size’ (ukuran file dalam satuan byte), ‘tmp_name’ (nama file sementara sesaat setelah di-upload ke server), ‘error’ (kode status/error).
    • Berbagai “Error Code” yang mungkin dihasilkan oleh $_FILES['userfile']['error'] (bisa berupa konstanta atau nilai integer):
      • UPLOAD_ERR_OK – Nilai: 0;
        Upload sukses (tidak ada error).
      • UPLOAD_ERR_INI_SIZE – Nilai: 1;
        File yang diupload berukuran lebih besar daripada setting upload_max_filesize yang ditentukan oleh php.ini.
      • UPLOAD_ERR_FORM_SIZE – Nilai: 2;
        File yang diupload berukuran lebih besar daripada setting upload_max_filesize yang ditentukan oleh MAX_FILE_SIZE (form).
      • UPLOAD_ERR_PARTIAL – Nilai: 3;
        Upload file tidak lengkap.
      • UPLOAD_ERR_NO_FILE – Nilai: 4;
        Tidak ada file yang ter-upload.
      • UPLOAD_ERR_NO_TMP_DIR – Nilai: 6;
        Tidak ditemukan folder temporary (server)
      • UPLOAD_ERR_CANT_WRITE – Nilai: 7;
        Tidak ada hak akses write di server.
      • UPLOAD_ERR_EXTENSION – Nilai: 8;
        Nama file dilarang oleh ekstensi file.
    • Fungsi move_uploaded_file() gunanya untuk memindahkan file sementara (temporary server file) ke lokasi yang diinginkan.
    • Fungsi print_r() tidak ada kaitannya dengan proses upload. Fungsi ini hanya untuk menampilkan struktur data variabel bertipe array.
  • Twitter
  • Facebook
  • Delicious
  • Digg
  • Technorati Favorites
  • Reddit
  • Yahoo Buzz
  • Google Reader
  • Google Bookmarks
  • StumbleUpon
  • Google Gmail
  • Yahoo Mail
  • LiveJournal
  • LinkedIn
  • PrintFriendly
  • Posterous
  • WordPress
  • Share/Bookmark

Artikel terkait



blank