Membuat script upload file lengkap dengan php dan mysql

Melanjutkan tutorial simple upload file yang sebelumnya, kali iki kami sajikan tutorial upload file lengkap dengan menggunakan batasan - batasan extensi file yang diperbolehkan untuk diupload dan juga pencatatan data upload pada database mysql. Langkah - langkah pembuatan script upload file dapat kita lihat pada pembahasan berikut :

 

1. Membuat script koneksi php dengan mysql

<?php
$dbhost	= 'localhost';
$dbusn	= 'root';
$dbpass	= 'kutukupret';
$dbname	= 'tutorial';
$dbconn	= mysql_connect($host,$dbusn,$dbpass);
$dbopen	= mysql_select_db($dbname,$dbconn);
?>

Script koneksi ini mutlak kita perlukan supaya script php kita bisa mengakses database MySQL


2. Membuat script form upload file dengan html

<?php
include('config.php');
include('action_upload.php');
?>
<style type="text/css">
	.table{
		font:normal 12px Tahoma,verdana;
		border:silver 1px solid;
		width:350px;
	}
	.table tr td{
		border-bottom:silver 1px solid;
		border-right:silver 1px solid;
		padding:0 5px 0 5px;
	}
	.table tr td.title{
		font:bold 12px Tahoma,verdana;
		background-color:#999999;
		color:#000000;
	}
	input{
		font:normal 12px Tahoma,verdana;
	}
	#eror{
		width:345px;;
		border:red 1px solid;
		margin-left:auto;
		margin-right:auto;
		margin-bottom:5px;
		padding:0 0 0 5px;
	}
	#msg{
		width:345px;;
		border:green 1px solid;
		margin-left:auto;
		margin-right:auto;
		margin-bottom:5px;
		padding:0 0 0 5px;
	}
</style>
<form method="post" enctype="multipart/form-data" action="">
<table class="table" cellpadding="0" cellspacing="0" align="center">
<tr>
	<td colspan="2" height="25" class="title">Form Upload File</td>
</tr>
<tr>
	<td width="100">File</td>
	<td><input type="file" name="data_upload" /></td>
</tr>
<tr>
	<td width="100" valign="top">Keterangan</td>
	<td><textarea name="keterangan" cols="30" rows="3"></textarea></td>
</tr>
<tr>
	<td></td>
	<td><input type="submit" name="btnUpload" value="Upload" /></td>
</tr>
</table>
</form>

Script form upload file ini dapat kita buat dengan menggunakan bahasa html biasa, akan tetapi tetap kita simpan dengan extensi .php karena script ini memuat beberapa perintah php yang terdapat pada baris - baris awal.

3. Membuat script action_upload yang akan memproses file yang akan diupload

<?php
//Buat konfigurasi upload
//Folder tujuan upload file
$eror		= false;
$folder		= './upload/';
//type file yang bisa diupload
$file_type	= array('jpg','jpeg','png','gif','bmp','doc','docx','xls','xlsx','sql');
//tukuran maximum file yang dapat diupload
$max_size	= 1000000; // 1MB
if(isset($_POST['btnUpload'])){
	//Mulai memorises data
	$file_name	= $_FILES['data_upload']['name'];
	$file_size	= $_FILES['data_upload']['size'];
	//cari extensi file dengan menggunakan fungsi explode
	$explode	= explode('.',$file_name);
	$extensi	= $explode[count($explode)-1];

	//check apakah type file sudah sesuai
	if(!in_array($extensi,$file_type)){
		$eror   = true;
		$pesan .= '- Type file yang anda upload tidak sesuai<br />';
	}
	if($file_size > $max_size){
		$eror   = true;
		$pesan .= '- Ukuran file melebihi batas maximum<br />';
	}
	//check ukuran file apakah sudah sesuai

	if($eror == true){
		echo '<div id="eror">'.$pesan.'</div>';
	}
	else{
		//mulai memproses upload file
		if(move_uploaded_file($_FILES['data_upload']['tmp_name'], $folder.$file_name)){
			//catat nama file ke database
			$catat = mysql_query('insert into file_upload(Filename,Detail,Folder,DateUpload) values ("'.$file_name.'", "'.$_POST['keterangan'].'", 
								  "'.$folder.'", "'.date('Y-m-d H:i:s').'")');
			echo '<div id="msg">Berhasil mengupload file '.$file_name.'</div>';
		} else{
			echo "Proses upload eror";
		}
	}
}
?>

Pemrosesan file yang diupload dilakukan oleh script action_upload, dalam script ini kita mendefinisikan daftar extensi file yang diperbolehkan untuk diupload dalam bentuk data array, jika hendak menambahkan extensi lain yang diperbolehkan untuk diupload, maka kita bisa menambahkannya seperti pada contoh diatas.

Silahkan mendownload script upload file dengan php dan mysql ini dengan cara klik link download di bawah, jika ada beberapa hal yang belum dipahami, silahkan untuk menanyakan kepada kami dengan mengisi form komentar dibawah.

 

Terimakasih dan salam kreatif

Download script upload file dengan php dan mysql


Komentar pembaca

Eka Irsabsaya mempunyai masalah dengan koneksi ke database. saya udah membuat database dan koneksi berhasil,tapi pada saat saya mengisi form di website saya, ko datanya ngga muncul di database ia? itu kenapa ia?posting pada :2013-03-25 13:43:02
Rojhiebsaya membuat form visitbook dimana saya menguji ingin menampilkan testimoni user tapi dibuku saya bisa membuat formnya tetapi ingin menampilkannya di kolom tabel script yang perlu saya lakukan merubah scriptnya apa saya perlu mendesain di software phpeditor yang lain? terima kasih posting pada :2013-06-01 18:17:45
AdminRojhieb, untuk menampilkan data yang diambil dari mysql pada sebuah tabel html, kita hanya perlu membuat sebuah tabel html, kemudian melakukan perulangan pada report bagian dalam tabel tersebut untuk menampilkan testimoni user. Perulangan yang dilakukan adalah dengan menggunakan fungsi while($var=mysql_fetch_array($query_anda)). Contoh
<table width="500">
<tr>
<td>No</td>
<td>Nama</td>
<td>Komentar</td>
</tr>
<!--Perulangan kita buat pada bagian ini, silahkan anda ganti dengan fungsi while spt pada penjelasan diatas-->
<?php
for($i=1; $i<=20; $i++){
	echo '<tr>
			<td>'.$i.'</td>
			<td>Orang ke '.$i.'</td>
			<td>Isi komentar '.$i.'</td>
		 </tr>';
}
?>
</table>
posting pada :2013-06-02 16:59:59
fathur roziNice info gan..., trims ya...posting pada :2013-06-23 13:03:35
danyom , kenapa ya sama buat form upload tp pas file sukses di upload ga masuk ke direktori yang saya mau ? harus gimana tuh om ?posting pada :2013-07-29 23:33:46
AdminDany, Untuk kasus tersebut, silahkan periksa apakah folder tujuan sudah ada atau belum. Seringkali permasalahan seorang pemula terdapat pada folder tujuan upload yang belum ada atau tidak sesuai dengan alamat yang disebutkan pada script. Pada contoh diatas nama folder tujuannya adalah upload yang letaknya bersebelahan dengan script action_upload.phpposting pada :2013-07-30 10:04:16
RyoBang admin.. saya mw tanya klo di folder uploadnya sih udah berhasil.. klo di DB nya ko' tidak muncul ya?posting pada :2013-08-19 15:32:55
bambangkalau untuk mengecek jika file yang diupload sudah ada, bagaimana script-nya? Makasih.posting pada :2013-10-03 12:44:29
erwingan kalau script, ketika user mengupload file (ex. "jpeg") dan agar secara otomatis muncul di halaman utama web kita, gimana? tolong dibantu ya hheposting pada :2013-10-06 10:14:58
rizki ramadhanikalau kita ingin membuat table download nya bagai mana mas ?, *awam ni :( mohon bantu masposting pada :2013-10-10 23:54:11
kurnia6ggan mau tanya nih. script biar pas uploadnya beres terus keluar linknya gmna?posting pada :2013-11-06 17:53:44
ayubagaimana dengan coding download fileposting pada :2013-11-21 11:26:04
Ligaruntuk file yg di upload sudah berhasil..tp ke databasenya belum gan..buat download filenya gmn tu gan?posting pada :2013-12-16 15:18:13
diah putriBaguuus . , posting pada :2014-01-13 12:35:00
priekuSaya sudah berhasil menerapkan cara diatas dan sukses, walaupun tidak semua script sama hanya sedikit yg dikurangi disesuaikan dengan script saya. Yg ingin sy tanyakan bagaimana supaya ukuran file yang melewati batas masih bisa diterima namun pada prosesnya nanti akan di kompres sehingga ukuran file menjadi kecil mohon bantuanya...terima kasihposting pada :2014-02-01 19:09:42
Kilat Aryantosangat membantu mas terima kasihposting pada :2014-02-04 06:34:48
ardianbos.. kl upload folder tujuan ke hosting gmna soalnya ak bikin gagal terus..? mksposting pada :2014-02-07 19:14:49
Abdoegan, maaf kalo script yang ini $catat = mysql_query('insert into file_upload(Filename,Detail,Folder,DateUpload) values ("'.$file_name.'", "'.$_POST['keterangan'].'","'.$folder.'", "'.date('Y-m-d H:i:s').'")'); fungsinya untuk mencatat file ke database kan? saya belum berhasil. databasenya sudah saya buat dan nama fieldnya pun sudah saya samakan. Terima Kasihposting pada :2014-05-12 21:40:54
Aditya Rahmangan, klo membuat komentar pada postingan gini gimna?posting pada :2014-06-02 18:24:43
EnhyAda ngak yg 3 tabel databasenya di tampilkan trus lengkap dengan scripnya juga..????? mksih..posting pada :2014-06-21 10:21:35
ZainuddinUntuk tabel dalam databasenya kok gak disebutin ya disini?? saya pingin tahu type data apa yang dipakai pada setiap tabelnya.posting pada :2014-09-24 11:18:10
saifulsip gan cocok sperti yang lagi saya cari ,,,, tak tunggu kunbal komennya di http://www.mysymbiandroid.tkposting pada :2014-10-29 14:05:06
Andreas PanduMakasih Bro, berhasil Tapi Cara Menampilan File Yang Habis Di Upload Di Halaman Depan Giama Ya??posting pada :2014-12-31 23:00:26
eko dwGMNA CARA KETIKA KITA MENGIMPUT DATA DI FORM INPUT TETAPI DATA KOSONG DAN LANGSUNG MENEKAN SIMPAN, MAKA AKAN MUNCUL DATA TIDAK BOLEH KOSNG.....posting pada :2015-02-04 11:54:54
nabilmas, gimana cara ny rename nama file yg mau diupload, contoh nya file gambar.jpg, setelah diupload otomatis menjadi 00728c4cd102ad7ffe19e8731bc78f7a_t.jpg , kaya nama file *.jpg yg ad di facebook atau di situs 1cak.com.. dan gmn cara menampilkannya mas?? terima kasih.. :-)posting pada :2015-02-06 11:47:38
AdminSdr Nabil, mudah saja untuk merename file yang diupload, langkah - langkahnya: Dapatkan extensi file dengan fungsi explode seperti pada contoh diatas. Selanjutnya buat nama baru misalnya dengan fungsi waktu ymdhis.extensi yg sudah didapatkan. Selanjutnya tinggal letakkan nama baru pada fungsi move_uploaded file seperti pada contoh diatas.posting pada :2015-02-06 14:45:47
shenaSaya kesulitan untuk membuat scprit admin phpposting pada :2015-02-16 14:40:34
RizkyKalo format video ko ga bisa ya gan? padahal saya udah nambahin format mp4,flv dsb. apa beda lagi caranya ?posting pada :2015-02-21 02:35:04
AdminSdr Rizky, pada dasarnya kita bisa upload file video juga, dengan catatan kita menambahkan jenis extensi filenya. Kemudian jangan lupa juga menuliskan batasan ukura filenya, karena pada contoh diatas kita hanya menuliskan sebesar 1 MB. Hal yang tidak kalah pentingnya juga adalah merubah ukuran file yang dapat kita upload dengan merubahnya pada file php.ini, yaitu pada bagian upload_max_filesize dan post_max_sizeposting pada :2015-02-24 14:07:51
nadiauntuk spy bs di download filenya gmn yah???posting pada :2015-02-26 19:11:40
Martagan masih blm ngeh, gimana buat ke databasenya??posting pada :2015-04-16 11:33:58
ysirgan ane mau tanya. kok ga k ada database nya ya??posting pada :2015-04-26 09:11:23
Mahmud Al FauziSangat bermanfaat untuk website sekolah sayaposting pada :2015-05-02 06:05:29
dahriMAS ADMIN AKU BOLEH TANYA? KALO SCRIPT KONEKSINYA DI SIMPAN PAKAI NAMA APA KALO DARI CPANEL.. TERUS MINTA SCRIP UNTUK MENAMPILKAN GAMBAR YANG SUDAH SELESAI KITA KAN DARI (FROM UPLOAD) - (PROSES) _ (TAMPILAN GAMBAR)posting pada :2015-05-21 17:06:32
normaBang. Punya sy kok di database nya ga muncul ya pdhl file nya udah pindah ke direktoriny. posting pada :2015-06-19 00:26:50
dimasgan, gimana caranya untuk menghapus data yang sudah kita uploadposting pada :2015-06-19 20:47:50
Admin

Sdr. Yang diatas, komentar anda tidak akan kami hapus.

Kita bisa memaklumi komentar sdr dengan perkataan kotor seperti itu, karena kita lihat nama anda tidak seperti nama manusia pada umumnya.

posting pada :2015-06-30 11:44:23
irul Maleomas, saya masih bingung tentang mengupload file nya. bagaimana nama file yang di upload otomatis berganti sesuai nomor ke berapa file tersebut di upload. Mohon pencerahanya mas. terimakasihposting pada :2015-06-30 14:50:47
JafarMakasih mas pencerahan upload gambarnya. Irul Maleo kalo pake database cari last insert id nya dulu kalau PKnya tipenya int, trus simpan di variabel kemudian ubah ubah nama filenya dengan isi dari variabel tersebut, caranya mirip seperti penjelasan untuk sodari Nabil diatas.posting pada :2015-07-28 00:15:38
irwantonice posting pada :2015-07-29 06:33:36
yudamas,kalo mau upload file ke server lpse gimana mas?soalnya bandwitdh kami diperkecil oleh admin.posting pada :2015-09-08 20:37:14
Ilmu gratisMantap langsung pratktek nihposting pada :2015-09-11 09:03:22
aguskok file yg saya upload ngga bsa tampil d database yah,,knpa tuhposting pada :2015-09-21 11:30:07
fiqiDatabest udah bener kok ada tulisan Deprecated: mysql_connect(): The mysql extension is deprecated and will be removed in the future: use mysqli or PDO instead in /home/u114510612/ public_html/config.php on line 6 Chek: http://fiqi.tk/upload.phpposting pada :2015-10-18 23:29:55
yudiTerima Nuhunposting pada :2015-11-01 22:17:14
ramadhangmana cara mau upload gambar dan file dalam satu formposting pada :2015-11-03 08:38:48
pawitTerimakasih gan atas infonya.. 100% working !!posting pada :2015-11-10 10:05:14
Alfiado ArsyidiTerima kasih gan ini script yg saya cari untuk CMS web local saya thxposting pada :2015-12-09 16:01:46
jhoegan kalo mau buat input otomatis gimana misalnya kita membuat form upload jika di kosongkan maka akan terisi dengan nama (img.jpg)posting pada :2016-02-17 03:48:23
HendryPak saya mau tanya, Sintak untuk Folder tujuan upload file, jika berada di Drive Berbeda seperti apa ya? misal saya mau letakkan di drive D: posting pada :2016-03-26 21:51:21
RizalKeren mas infonya bermanfaat cuma tinggal 1 langkah lagi nih itu menaruh filenya di directory apa ya? maaf newbie mas heheposting pada :2016-05-04 02:39:31
bimakalau cara menghapus file yang telah kita upload gimana min? tolong pencerahannyaposting pada :2016-05-23 11:24:43
permanaadmin mw tanya, bagaimana jika input filenya boleh kosong tetapi data dari inputan yang lain tetap tersimpan. bagaimana cara penanggulannganya ya?mohon bantuanyaposting pada :2016-06-23 17:17:20
rosmaMaaf admin tolong bgt dijawab. koding diatas tidak menampilkan bahwa upload filenya tersimpan ke database itu kenapa ? dan saya memang sedang membutuhkan koding upload file yang menyimpan ke database. tolong dijawab T.T posting pada :2016-07-21 00:27:38
BloglaguGan, gimana cara membuat upload file yang pake import url?posting pada :2016-09-08 21:51:41
pujapiirokGa ane mau nanya gmna cra upload 4 file dalam 1 id.. Misal idnya 001 file yg di upload ada 4 buah yaitu. Sk1 sk2 sk3 sk4 Mohon pencerahannya gan. .posting pada :2016-09-17 23:01:28
oktaviagan , saya mau tanya ...gimana caranya menempatkan file upload ke form folder sesuai format/detail file....misalnya ketika kita membuat form upload terus di format detail itu ada kolom no surat jika no surat yg kita input sama dengan data surat yg sdh ada maka otomatis file upload td akan masuk ke folder data yg sama . nah gimana tue gan ??? tolong dibantu ya posting pada :2016-10-10 09:35:07
Admin

Sdr. Oktavia

Kalo memang bgt, berarti kita membutuhkan format tertentu untuk lebih mudahnya mengenali alamat Surat.
Misalnya DLV/101116/000001m Kode DLV adalah surat khusus bagian pengiriman, sehingga surat - surat tersebut akan disimpan ke folder Delivery.
Langkah - langkahnya adalah:

  1. Buat tabel surat dengan struktur kolom ID,No Surat,Tujuan,Folder,Tanggal dst
  2. Buat form Upload yang ada form input Nomor Surat
  3. Dalam proses Upload kita harus melakukan langkah - langkah berikut:
  • Sebelum menjalankan perintah move_uploded_file, periksa dulu nomor surat
  • Misal kita ambil 3 huruf pertama dari nomor surat, kita dapatkan kode DLV
  • Buat query ke tabel surat select folder from tabel_surat where left(nomor_surat,3)=`DLV`
  • Setelah dapat nama foldernya, baru bisa dilanjutkan prosesnya ke proses move uploaded file dengan folder tujuan yang sudah didapatkan
posting pada :2016-10-10 09:52:46
janegan yang tanya diatas tu banyak lho! kok file bisa diupload tapi nggak tampil di web atau datanya nggak ada.posting pada :2016-12-07 21:54:49
fityankalo misalkan mau upload 4 gambar sekaligus codingnya kaya gimana ? posting pada :2016-12-28 15:29:39
Ruslangan, supaya upload filenya gak dibatasi atau semua jenis extension bisa diupload gimana ya kodingnya? :)posting pada :2017-01-23 18:25:10
andikaPermisi agan numpang nanya, saya mau upload gambar ke cpanel. scriptnya ketika saya coba offline bisa, sedangkan pada saat saya upload file ke cpanel tidak bisa. padahal directorynya sudah saya ganti dan hak aksesnya sudah saya ganti. bagaimana ya gan solusinya. Terimakasih sebelumnya. GBUposting pada :2017-02-06 08:26:20
Indah KurniaPagi mas mau bertanya.. Dapatkah kita mengupload 2 data sekaligus ke dalam 1 tabel dengan ID saja? Mohon bantuannya mas... TerimaKasihposting pada :2017-02-24 08:10:07
Daffa Fawwaz MaulanaMAs....Mau Tanya bagaimana cara upload lebih dari 1 poto sekaligus ke database dalam 1 table tapi beda fieldsposting pada :2017-05-10 14:59:13
reskiantosaya sudah praktekan dan bisa di terapkan dalam kehidupna se hari-hari...!!!!posting pada :2017-05-18 09:18:02
Ahmad FahrurrojiMakasih gan sangat bermanfaatposting pada :2017-05-28 09:08:26
Yukimin buat halaman download file yang udah kita upload ini dong sekalian?posting pada :2017-07-30 22:01:39
kimbismillah om admin, boleh tau rancangan database dan tabel uploadnya ga? terima kasih posting pada :2017-08-05 07:55:08
FitraMaaf pak, boleh tanyak. Cara untuk meproses data ke database untuk form text biasa yg di gabung dengan form upload gmna caranya pak. Terimakasihposting pada :2017-08-27 15:07:53
AAMBagaimana untuk menampilkan file yang sudah di upload tadi gan?posting pada :2017-09-12 15:28:23
fadlygan, saya mau meletakkan form upload file di dalam input data, gmna scriptnya gan ?? dan file yg saya upload tadi bisa di lihat di "detail" trimakasihposting pada :2017-10-30 12:08:48
Fadhelkalau untuk upload file video gimana ya gan? sudah saya coba untuk upload video ke database dan muncul, tapi saat extend ke folder upload videonya gak ada gan. itu gimana ya? mohon bantuannya. makasih posting pada :2018-10-15 14:38:27