Trick Upload PHP Auto Rename

Hai…para pengunjung setia, ini adalah artikel tentang php. 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 :

  1. Folder direktori yang nantinya akan kita gunakan sebagai tempat untuk menampung hasil dari proses upload. Contoh : saya berinama foldernya “upload”
  2. Halaman form.php
  3. 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

Tutorial ini diambil dari website http://www.ilmuwebsite.com saya merepostnya dengan tujuan belajar. Tidak ada tujuan untuk mengambil keuntungan pribadi dan merugikan pemilik tutorial sebenarnya. Salam DedzZ……:)

Tinggalkan Balasan

Isikan data di bawah atau klik salah satu ikon untuk log in:

Logo WordPress.com

You are commenting using your WordPress.com account. Logout / Ubah )

Gambar Twitter

You are commenting using your Twitter account. Logout / Ubah )

Foto Facebook

You are commenting using your Facebook account. Logout / Ubah )

Foto Google+

You are commenting using your Google+ account. Logout / Ubah )

Connecting to %s

%d blogger menyukai ini: