Mengenal fungsi - fungsi dasar dalam proses upload file dengan php

uploadSetelah mengulas cara - cara belajar pemrograman yang benar, kali ini kita akan mencoba membuat sebuah script yang sebenarnya sangat sederhana jika kita mengetahui fungsi - fungsi dasar yang digunakan dalam proses Upload dengan menggunakan PHP.

Pengalaman pribadi yang kami alami dulu adalah mencari - cari contoh tutorial Upload file dengan php, dan contoh - contoh yang kami dapatkan dulu cukup membuat kepala pening untuk kalangan pemula, mengapa demikian ? Karena kami belum mengerti bagian - bagian dasarnya ?

 

Supaya hal tersebut tidak terulang pada pembaca Media Kreatif, cobalah ikuti langkah - langkah berikut dengan seksama.

1. Buat script Upload file yang sangat sederhana dulu

	<?php

	if(isset($_POST['btn'])){
	$tipe = $_FILES['file']['type'];
	$nama = $_FILES['file']['name'];
	$size = $_FILES['file']['size'];

	if(move_uploaded_file($_FILES['file']['tmp_name'], $nama)) {
	    echo 'Berhasil mengupload '.$nama;
	} else{
	    echo "Eror";
	}
	}

	?>

	<form enctype="multipart/form-data" action="" method="POST">
	Pilih File : <input name="file" type="file" /><br />
	<input type="submit" value="Upload File" name="btn" />
	</form>

2. Penjelasan dari script diatas adalah sebagai berikut :

  • Form yang kita gunakan dalam proses Upload file tidak sama dengan Form yang kita gunakan hanya untuk mengirim Text, akan tetapi kita harus menambahkan fungsi enctype="multipart/form-data" supaya file dapat dikenali
  • Pada script diatas, pemrosesan upload file dilakukan oleh script yang sama, dimana kita lihat script phpnya kita tempatkan jadi 1 dengan form uploadnya.
  • Pada bagian script PHP, kita bisa melihat beberapa fungsi $_FILES yang bisa kita gunakan dalam proses Upload file, diantaranya :
    • $_FILES['file']['type'] => Fungsi ini digunakan untuk mengetahui jenis file yang di upload
    • $_FILES['file']['name'] => Fungsi ini digunakan untuk mengetahui nama file yang di upload
    • $_FILES['file']['size'] => Fungsi ini digunakan untuk mengetahui ukuran file yang di upload
  • perintah move_uploaded_file($_FILE['file']['tmp_name'], $nama) adalah fungsi paling utama dalam script upload kita. Dimana fungsi inilah sebenarnya yang digunakan php untuk mengirimkan file dari komputer kita ke web server. Dalam fungsi tersebut , kita melihat dua bagian utama, yaitu :
    • Sumber file dari komputer kita => $_FILE['file']['tmp_name']
    • Tujuan upload file yaitu $nama ,  Dalam hal ini kami tidak menyebutkan pada direktori mana file akan kita tempatkan, sehingga saya menuliskan secara langsung tujuan filenya dengan $nama, yang artinya file yang kita upload nantinya akan disimpan menjadi 1 direktory dengan script uploadnya, nama filenya juga akan tetap sama dengan nama file yang kita upload.

Dari uraian singkat diatas, kita sudah bisa membuat script upload file yang sederhana, mengapa kami katakan script tersebut sangat sederhana ? Jawabannya adalah : Karena belum ada batasan - batasan terhadap file yang akan kita upload. Dengan script diatas, kita bisa mengupload semua jenis file.

Batasan - batasan seperti apa yang harus kita buat ?

  • Pada proses upload gambar, maka tentukan file apa saja yang boleh di upload , misalnya hanya boleh mengupload gambar dengan format jpg , png dan gif . selain format tersebut akan ditolak
  • Pada proses Upload dokumen, tentukan type dokumen apa saja yang boleh di upload, apakah zip, xls, doc,dll sesuai keinginan kita.
  • Pada proses Upload secara umum, kita harus menentukan ukuran maximal file yang bisa di upload, supaya kita bisa menghemat kapasitas hosting server kita
  • Jangan biarkan orang - orang mengupload script - script executable seperti php untuk menjaga kemanan website kita.

Sebenarnya yang membuat sebuah script php itu terlihat banyak dan komplek adalah batasan - batasan tersebut, kalo kita melihat bentuk dasarnya tentunya sangat simple seperti yang terlihat diatas.

Silahkan mencoba - coba sendiri membuat script Upload sesuai dengan keinginan anda, jika ada permasalahan yang ingin anda tanyakan seputar tulisan diatas, silahkan tuliskan komentar / pertanyaan anda pada form dibawah .

 

Salam Kreatif :)

 

 


Komentar pembaca

cecepbisa ga kalo databasenya di gabung ama file lain misalnya input nama, alamat, tanggal dll.. bantuannya ya.... cz form input aku harus ada uploadnya... nah klo di tampilin identitasnya sama file upload bisa kelihatan berbarengan.. filenya doc. pdf. dllposting pada :2012-04-05 14:53:17
AdminBisa saja digabung dengan inputan lainnya, tinggal dibuat saja form inputnya sesuai keinginan anda, dan jangan lupa siapkan juga tabelnya sesuai dengan kebutuhan , misalnya nama,alamat,telp,ttl,file_upload dll . nama file bisa di ambile dari variabel $nama = $_FILES['file']['name']; untuk dimasukkan ke kolom file_upload. Jika ada kemungkinan satu user bisa mengupload banyak document, maka sebaiknya tabel user dan tabel file_upload dipisahkan saja supaya pemrosesannya menjadi lebih simple.posting pada :2012-04-05 16:13:33
ruslianaMas, bisa file documen yg kita upload, kita rubah isi kata2 yg di dokumen waktu diupload?posting pada :2012-05-11 11:24:42
AdminRusliana=>Kalo yang dimaksud adalah mengubah isi documentnya tentunya akan sangat sulit, terutama jika document yang dimaksud adalah document - document seperti ms word, excel dan document lain yang sudah mempunyai format tertentu. Dalam hal ini yang biasa kita lakukan hanyalah mengubah nama file saja untuk mengantisipasi terjadinya penyimapanan file dengan nama dan extensi yang sama untuk menghindari file replacement posting pada :2012-05-11 23:06:32
deni moesmas , kalo kodenya langsung tersimpan di databasennya gimana yah ? thx , maaf merepotkan saya newbie banget pm : deni_moes@yahoo.composting pada :2012-05-23 16:46:29
ANDImas tolong berikan script menghindari orang lain mengupload script - script executable melalui form, seperti php untuk menjaga kemanan website kita.posting pada :2012-07-03 20:04:53
septianterima kasih untuk artikelnya.. btw untuk lebih lanjut pengamanan dan pembatasan filenya..atau menaruh file upload kedalam folder bisa saya dapat di mana yah mas.posting pada :2013-01-30 09:29:30
AdminSeptian, Silahkan check pada alamat url berikut : http://media-kreatif.com/home/post/46/membuat-script-upload-file-lengkap-dengan-php-dan-mysql.prmposting pada :2013-01-30 16:36:40
rafeliusmas tolong lebih jelaskan sedetail detailnya tentang $_FILE['file']['tmp_name'] kenapa hrs ada [temp_name] lg jika sudah ada $_FILES['file']['name'] posting pada :2013-10-09 15:36:53
AdminSdr Rafel, fungsi $FILE[file][filename] hanya mengenali nama file. Sedangkan fungsi $FILES[file][tmp_name] akan merupakan nama file temporer yang akan dikirimkan ke server. Cobalah melakukan echo pada tmp_name, maka akan didapati lokasi gile temporer yang akan diupload lengkap dengan alamat / pathnya. Jadi dalam proses upload, php tidak langsung mengakses pafa direktory file asli. Akan tetapi membaca file temporer yang dihasilkan oleh browser.posting pada :2013-10-09 19:31:28
andicontoh file : admin.jpg gmn cara buat variable yg menampung jenis file nya saja (jpg) thxposting pada :2013-10-23 00:24:28
AdminUntuk mendapatkan extensi file, kita bisa gunakan fungsi explode seperti pada contoh berikut :
<?php
//cari extensi file dengan menggunakan fungsi explode
$file_name = 'logo_media_kreatif.jpeg';
$explode	= explode('.',$file_name);
$extensi	= $explode[count($explode)-1];
echo $extensi;
?>
posting pada :2013-10-23 09:35:26
TanyaMas, gimana cara me-rename file yang kita upload sehingga nama file di database dan nama file di direktori upload sama.posting pada :2013-10-31 15:53:44
zonaMin kalo di wp media upload kan ga bisa ngirim file php, bisa ga buatin sample uploader biar bisa kirim php file?posting pada :2013-11-01 18:46:15
Sottakaka ini knp yahh failed to open stream: Permission denied in /opt/lampp/htdocs/pepeser/pes.php on line 14 sama Unable to move '/tmp/phpLtx3te' to 'x.php' in /opt/lampp/htdocs/pepeser/pes.php on line 14posting pada :2013-11-06 14:56:09
haqmakasih sblumnya atas artikel ini, klo mau buat form brisi : id, nama,alamat, foto dan disimpan di db. sedangkan untuk foto pke upload yang lain pke insert tapi satu button submit. bisa nggak ? bagaimana caranya mas ?posting pada :2014-01-08 22:18:23
AdminSdr Haq, Kita bisa melakukan proses upload terlebih dahulu. pada proses upload sukses, buat variabel yang menyimpan nama file yang diupload. Selanjutnya, kita bisa melakukan insert data-data yang lain serta nama file yang sudah kita upload sebelumnya yang sudah kita simpan dalam bentuk variabel.posting pada :2014-01-08 22:25:59
AndreMakasih mas untuk tingkat basicnya. hanya saya ingin mempelajari tingkat lainnya. dan saya ada masalah . Saya kan lagi kerjain 34 website. untuk pasang iklan jadi kita masang 1 iklan di 1 web akan share ke semua seperti hallnya add on domain cuman disini beda cpanel hanya saja 1 server jadi port untuk mysql sama dan dapat digabungkan. tapi masalahnya uploud fotonya itu kok untuk ke website lainnya gak muncul fotonya . dan sebabnya itu waktu file .jpg di uploud dia otomatis ke rename oleh script di web lainya . sedangkan link untuk panggilnya sama seperti nama file .jpgnya, dia ga ikut ke rename juga. jadi kan file itu ga kedetect sama potonya . setiap di upload photonya itu ga muncul karna merename terus file.jpgnyaposting pada :2014-01-27 10:51:13
prettyfungsi value dan formposting pada :2014-02-10 09:54:23
Azmi Cole Jrgan kalo upload banyak gambar di 1 ID yg sama gimana yah? jadi mungkin fieldnya itu ada gambar1, gambar2, gambar3, dan seterusnya. Mohon tutorialnya gan. :) posting pada :2014-02-11 05:37:24
BekiSalam mas mohon bantuannya, saya mau buat website sosbook / share artikel. yang saya mau seperti situs lintasme, di mana saya untuk beli atau dapetin scripnya / aplikasiya. mohon supportnya dan saya benar benar butuh bantuan mas atau kalau memang mas punya stock kontak saya aja langsung ke BBM saya 74077C18. terims posting pada :2014-02-27 15:12:44
RosidaFungsi uploadposting pada :2014-09-19 17:12:05
herumas, mohon bantuannya,,, kasus saya, saya mau upload data .txt lalu data yang di txt itu otomatis mengisi kolom yang saya sudah buat di tampilan php webnya setelah saya upload. sourcodenya gimana ya mas ? kalau sourcode uploadnya sih sudah ada. saya pakai tools phpmyadmin dan localhost php.posting pada :2015-03-06 13:44:55
Nurmala Dewimas, kalau untuk membuat upload khusus format doc, ms-excel, dan pdf itu bagaimana yah?posting pada :2016-03-29 13:50:43
aminMas lek input gmbar dtmbah input lain2 (nma alamat jk agama) scrip.ny gmna aqaq kesusahan dsituposting pada :2016-05-19 19:14:07
Rizkigan , knpa pas upload di database nama file nya bener tadi pas di foler upload nama nya doble contoh ( rama.pdframa.pdf) kpa yahposting pada :2016-07-28 03:31:02
anggaTolong bantuanya .. saya lagi ada tugas .. kasus nya begini .. pas orang lain upload file , otomatis tersimpan ke folder yang kita buat .. awal mula si file formatnya nim.pdf nah pada saat masuk ke direktori folder yg kita buat si nim itu berubah ingin di ubah menjadi nama yang memiliki nim tetsebut sesuai yang ada di database .. bagaimana caranya pliss bantu saya posting pada :2016-11-22 21:25:00