
Ok kita langsung saja pada inti pembahasan yaitu
bagaimana mengupload file dengan menggunakan php ditambah sedikit trik
pengembangan. Upload file merupakan salah satu fasilitas pada web yang
kini semakin sering digunakan, file yang ada pada komputer local dapat
kita simpan ke dalam directory server yang nantinya dimanfaatkan untuk
berbagai keperluan. Dan tentunya setiap bahasa pemrograman web sudah
dipastikan memiliki fungsi-fungsi tersendiri untuk melakukan upload
file.
Seringkali saya bertanya pada diri sendiri “apabila
terdapat 1 file yang diupload ke server, sedangkan terdapat file dengan
nama yang sama pada server hosting, bagaimana caranya agar file yang
sudah ada dengan nama yang sama tidak ter-replace/tertimpa oleh file
yang baru diupload”.
Dan sekarang setelah mencari dan hunting
diberbagai situs yang membahas tentang web programming akhirnya saya
menemukan jawabannya.
Jawabannya adalah kita perlu melakukan
sebuah validasi sebelum file di kirim ke server. Validasi itu berupa
pengecekan apakah pada directory tujuan terdapat nama file yang sama
dengan file yang akan kita upload.
Ok sekarang kita coba langsung kepada scriptnya saja. Yang perlu kita sediakan adalah :
- Folder
direktori yang nantinya akan kita gunakan sebagai tempat untuk
menampung hasil dari proses upload. Contoh : saya berinama foldernya
“upload”
- Halaman form.php
- Halaman action.php
Langkah pertama adalah membuat halaman
form.php<form action="action.php" method="post" enctype="multipart/form-data">
Pilih File Anda:
<input type="file" name="myfile" />
<input name="MAX_FILE_SIZE" type="hidden" id="MAX_FILE_SIZE" size="30000" />
<input type="submit" value="Upload" />
</form>Langkah selanjutnya adalah membuat halaman
action.php. scriptnya sebagai berikut :
<?php
$uploadDir = "../upload/";
// Apabila ada file yang di-upload
if(is_uploaded_file($_FILES['myfile']['tmp_name'])){
$uploadFile = $_FILES['myfile'];
// Extract nama file
$extractFile = pathinfo($uploadFile['name']);
$size = $_FILES['myfile']['size']; //untuk mengetahui ukuran file
$tipe = $_FILES['myfile']['type'];// untuk mengetahui tipe file
//Dibawah ini adalah untuk mengatur format gambar yang dapat di uplada ke server.
Anda bisa tambahakan jika ingin memasukan format yang lain tergantung kebutuhan anda.
$exts =array('image/jpg','image/jpeg','image/pjpeg','image/png','image/x-png');
if(!in_array(($tipe),$exts)){
echo 'Format file yang di izinkan hanya JPEG dan PNG';
exit;
}
// dibawah ini script untuk mengatur ukuran file yang dapat di upload ke server
if(($size !=0)&&($size>30000)){
exit('Ukuran gambar terlalu besar’);
}
$sameName = 0; // Menyimpan banyaknya file dengan nama yang sama dengan file yg diupload
$handle = opendir($uploadDir);
while(false !== ($file = readdir($handle))){ // Looping isi file pada directory tujuan
// Apabila ada file dengan awalan yg sama dengan nama file di uplaod
if(strpos($file,$extractFile['filename']) !== false)
$sameName++; // Tambah data file yang sama
}
/* Apabila tidak ada file yang sama ($sameName masih '0') maka nama file pakai
* nama ketika diupload, jika $sameName > 0 maka pakai format "namafile($sameName).ext */
$newName = empty($sameName) ?
$uploadFile['name'] :
$extractFile['filename'].'('.$sameName.').'.$extractFile['extension'];
if(move_uploaded_file($uploadFile['tmp_name'],$uploadDir.$newName)){
echo 'File berhasil diupload dengan nama: '.$newName;
}
else{
echo 'File gagal diupload';
}
?>Pada
script di atas saya hanya mengkhususkan file yang di upload adalah
imang/gambar. Jika anda ingin mengupload file dengan format yang lain
silahkan anda ganti baris berikut :
$exts =array('image/jpg','image/jpeg','image/pjpeg','image/png','image/x-png');
if(!in_array(($tipe),$exts)){
echo 'Format file yang di izinkan hanya JPEG dan PNG';
exit;
}Dengan
menjalankan script sederhana diatas maka jika pada server terdapat nama
file yang sama maka file yang akan diupload akan digantikan dengan
format: namaFile(jumlahFileYangSama).extensionFile”. Contohnya
apabila di dalam server terdapat nama file “doc.pdf”, maka
file yang akan diupload nantinya akan menjadi direname secara otomaris
menjadi “doc(1).pdf”, apabila pada proses upload
selanjutnya ada file yang diupload dengan nama “doc.pdf”
juga maka file itu akan di-rename dengan nama “doc(2).pdf”,
dan begitu seterusnya.
Silahkan download script lengkapnya di sini :
http://www.ilmuwebsite.com/submit/trik_upload_byimran.zip
Sumber :www.ilmuwebsite.com