Upload atau yang sering dikenal
dengan mengunggah data ini adalah menduplikat (copy) data dari komputer pengguna (client) ke komputer penyedia layanan mengunggah file (server). Proses upload dapat digunakan
untuk banyak jenis file (ekstensi yang bermacam – macam) mulai dari file
gambar, audio, video, aplikasi dan masih banyak lagi. Proses upload terdiri
dari 2 (dua) macam cara:
1.Yang pertama kita mengunggah file dari
komputer client ke komputer server. Upload dengan cara seperti ini
memiliki beberapa keuntungan diataranya :
a.
Managemen file lebih mudah karena menggunakan
direktori (folder).
b.
Proses upload lebih cepat, karena tidak melalui
database.
c.
Dilakukan dengan meng-copy file dari client ke
komputer server.
d.
Mudah untuk melakukan backup data.
Cara semacam ini
juga mempunyai beberapa kelemahan diantaranya :
a. Karena menggunakan direktori, pemantauan data
akan lebih sulit dibandingkan dengan database.
b.
Memerlukan banyak folder jika ingin memisah
antara data client yang satu dengan
yang lain.
2.Cara
yang kedua adalah dengan mengunggah file dari pengguna ke database server. Cara ini terhitung lebih praktis
dari pada cara yang pertama, keuntungan yang dapat diperoleh antara lain :
a.
Proses pemantauan data lebih efisien.
b.
Hapus data, edit data dapat dilakukan lebih baik
dan lebih akurat.
c. Cukup menggunakan beberapa tabel untuk menampung
banyak pengguna (client).
d. Banyak dikembangkan oleh developer sehingga
ketersediaan informasi mengenai perkembangan database dapat terjamin.
Sekalipun cara
yang kedua ini terbilang lebih praktis, namun cara ini juga mempunyai beberapa
kelemahan :
a. Jika terlalu banyak file yang diupload dapat
menyebabkan server down dan performa
databasenya juga menurun.
b.
Proses backup membutuhkan waktu yang lama.
c. Sulit membedakan antara data pengguna yang satu
dengan yang lainya, karena semua berada dalam satu tabel yang sama.
Kedua cara / metode di atas adalah yang
sering digunakan untuk proses upload, sedangkan pada pembahasan kali ini hanya
akan dijelaskan cara mengupload file dengan menduplikat (copy) file dari komputer client
ke komputer server.
1.Sebelum
masuk ke tahap pembahasan, kita perlu membuat sebuah folder dengan nama “file”, folder inilah yang digunakan
untuk menyimpan file yang diupload oleh client.Jadikan folder "file" satu direktori dengan file - file PHP.
2.Index.php
<html>
<head>
<title>Multiple Upload</title>
</head>
<body>
<form method='POST' action='#'>
Jumlah file : <select name='jumlah'>
<?php
// isi jumlah maksimal file yang diupload
$x = 6;
// lakukan looping untuk batas upload
for($i=1;$i<=$x;$i++){
// menampilkan jumlah
terpilih
if(!empty($_POST['jumlah']) and $_POST['jumlah']==$i){
echo"<option value='$i'
selected>$i</option>";
}else{
// menampilkan
keseluruhan
echo"<option value='$i'>$i</option>";
}
}
echo"</select>";
?>
<input type='submit' name='send' value='pilih'/>
</form>
<form method='POST' action='upload.php' enctype='multipart/form-data'>
<?php
// jumlah file yang diupload
$jum = $_POST['jumlah'];
if(empty($jum)){
// jika kosong
echo"Silakan pilih jumlah
file.";
}else{
// jika isi lakukan
looping input file
for($a=1;$a<=$jum;$a++){
// input file sebanyak
$a buah
echo"
<input type='file' name='data$a' />
<input type='hidden' name='jumlah[]' value='$a' /><br/>";
}
}
?>
<br/><input type='submit' name='upload' value='upload'/>
</form>
</body>
</html>
Output :
Penjelasan :
for($i=1;$i<=$x;$i++){ digunakan
untuk melakukan looping sebanyak $x = 6; . Kemudian di
dalam looping juga terdapat sebuah kondisi, jika jumlah file yang akan diupload
diisikan kemudian disubmit, proses ini akan menyebabkan $_POST['jumlah'] memiliki nilai !empty($_POST['jumlah']), dan ketika
nilai tersebut sama dengan nilai pada saat looping $_POST['jumlah']==$i. Maka secara otomatis jumlah yang tadi
terpilih akan disorot sebagai pilihan.
Proses submit ini hanya dilakukan pada satu halaman index
saja untuk mendapatkan nilai dari jumlah file yang diupload. Pada baris
berikutnya setelah jumlah deketahui dilakukan looping yang kedua untuk
mendapatkan jumlah input file yang dibutuhkan sesuai dengan jumlah yang dipilih
tadi. for($a=1;$a<=$jum;$a++) variabel
$jum akan memiliki nilai yang berbeda – beda, nilai tersebut dipengaruhi saat
memilih jumlah input file yang dibutuhkan.
Untuk script <input type='file' name='data$a' /> ,name yang
digunakan adalah data$a, name ini juga dapat berubah sesuai jumlah yang
dipilih, misal : 1 atau 1,2 atau 1,2,3 dan seterusnya hingga batas jumlah file
yang dapat diupload.
Script <input type='hidden' name='jumlah[]' value='$a' /> name = “jumlah[]” merupakan pembentukan array sehingga ketika nilai variabel $a lebih dari satu, namun nilai – nilai tersebut tetap dikumpulkan dalam satu name yaitu “jumlah[]”. Penggunaan input hidden ini sangat berguna untuk mengembalikan nilai dari masing – masing file baik nama file, tipe file, ukuran file maupun path file pada saat akan diupload nanti.
Contoh :
3. Upload.php
<?php
// direktori penyimpanan
$folder = "file/";
// ambil nilai yang dikirim
$jumlah = $_POST['jumlah'];
// hitung jumlah array
$jum = count($jumlah);
if(!empty($jum)){
// lakukan looping untuk
proses upload
for($x=1;$x<=$jum;$x++){
// nama File
$namaFile = $_FILES['data'.$x]['name'];
// tipe File
$tipeFile = $_FILES['data'.$x]['tipe'];
// ukuran file
$ukuranFile = $_FILES['data'.$x]['size'];
// tmp Name / path file
sementara
$pathFile = $_FILES['data'.$x]['tmp_name'];
// upload file
$uploadFile = $folder.$namaFile;
// proses upload
if($ukuranFile!=0){
//
lakukan upload move_uploaded_file(path file sementara, file tujuan upload)
if(move_uploaded_file($pathFile,$uploadFile)){
echo "File : $namaFile
sukses diupload <br/>";
}else{
echo "File : $namaFile
gagal diupload <br/>";
}
}else{
echo "File gagal diupload
<br/>";
}
}
} // jika $jum != 0
else{
echo"Tidak ada file
terpilih";
}
?>
Penjelasan :
Definisikan nama folder yang kita buat dengan variabel
“$folder” ($folder = "file/";). Kemudian
input hidden tadi, kemudian dari variabel $jumlah yang berupa array dihitung
nilainya, kemudian lakukan looping for($x=1;$x<=$jum;$x++), di dalam proses looping ini dideklarasikan
kembali isi dari array “data$a” (pada pembahasan awal). Didalam array ini nama
file, tipe file, ukuran file dan path file didapatkan untuk selanjutnya
dilakukan proses upload.
Sementara variabel $x
nilainya juga dapat berubah – ubah sesuai dengan jumlah yang dipilih tadi,
namun pada dasarnya variabel ini akan mengembalikan jumlah nilai sebelumnya.
Misalkan jika tadi memilih input filenya sebanyak 4 buah maka akan dikembalikan
sebanyak 4 buah juga. Kemudian pada saat proses looping kondisinya juga dibuat
sama agar perulangan datanya bisa sesuai seperi pada saat file dikirim.
move_uploaded_file($pathFile,$uploadFile),adalah proses
terakhir untuk mengupload file dari client
ke server. Variabel $pathFile adalah direktori sementara
tempat file disimpan kemudian variabel $uploadFile
adalah “alamat” baru file ketika diupload dikomputer server.
Output
:
Semoga pembahasan yang singkat ini dapat menambah kekayaan ilmu pengetahuan kita, tak ada yang seutuhnya sempurna didunia ini, kesempurnaan hanya akan dicapai saat kita saling bahu - membahu melengkapi apa yang kurang dalam diri kita, "sebaik baik ilmu adalah yang bermanfaat bagi sesama", ikhwan anshori
--- Terima kasih ---
Anda baru saja membaca artikel yang berkategori Function in PHP /
pendidikan /
PHP /
Programming /
XAMP
dengan judul "Multi Upload Dengan PHP". Anda bisa bookmark halaman ini dengan URL https://3goldenbooks.blogspot.com/2013/11/multi-upload-dengan-php.html.
0 komentar
Posting Komentar