Contoh Multiupload Image Hosting


Beberapa hari yang lalu, dikaskus ada yang minta buatin web untuk upload gambar, spesifikasinya seperti ini :
– bisa multiupload (bisa upload lebih dari satu gambar sekaligus)
– setelah proses upload selesai, muncul BBCODE [img]link gambar[/img]
– penamaan file diacak secara random
– letak folder berdasarkan tanggal upload.

Kemudian saya ngoding nyobain untuk membuatnya dalam bentuk yang sangat sederhana dan Alhamdulilah jadi :))

Tampilannya :

– Tampilan pertama, ada pilihan untuk memasukkan berapa gambar yang akan diupload
image hosting 1

– Tampilan form setelah jumlah gambar disubmit
image hosting 2

– Tampilan BBCODE ketika gambar selesai diupload
image hosting 3

– Struktur Foldernya
image hosting 4

Untuk Demo, bisa di akses di sini

Scriptnya :

<!DOCTYPE html>
<html>
<head>
	<title>Upload Gambar</title>
</head>
<body>
<div style="text-align:center">
	<h3>Image Hosting</h3>
	<form>
		<input style="width:400px;" placeholder="Masukkan Jumlah Gambar Yang akan di Upload" type="text" name="u"/>
		<input type="submit" value="OK">
	</form>
	<?php 
	

	if (!empty($_GET['u'])){
		if(ctype_digit($_GET['u'])){
			echo '
			<form method="post" style="margin-top:20px;" enctype="multipart/form-data">';
			for ($i=1;$i<=$_GET['u'];$i++){
				echo '<input name="img[]" type="file"/><br/>';
			}	
			echo '<input value="Upload" name="upload" type="submit"/></form>';

			if (isset($_POST['upload'])){
				echo '<textarea style="width:100%;text-align:center">';
				$url= "http://demogambar.net63.net";
				for ($i=0;$i<=$_GET['u']-1;$i++){

					$waktu=date('d-m-Y m:h:s');
					$nama=$_FILES['img']['name'][$i];
					$size=$_FILES['img']['size'][$i];

					$namaFile = md5($waktu."=".$nama."=".$size);


					$ext = pathinfo($_FILES['img']['name'][$i], PATHINFO_EXTENSION);
					$newFilename = $namaFile . '.' . $ext;

					$tanggal=date('d');
					$bulan=date('m');
					$tahun=date('Y');

					if (!file_exists('images/'.$tahun)) {
					    mkdir('images/'.$tahun, 0777, true);
					} 

					if (!file_exists('images/'.$tahun."/".$bulan)) {
						mkdir('images/'.$tahun."/".$bulan, 0777, true);
					}

					if (!file_exists('images/'.$tahun."/".$bulan."/".$tanggal)) {
						mkdir('images/'.$tahun."/".$bulan."/".$tanggal, 0777, true);
					}

					$fileUpload = 'images/'.$tahun."/".$bulan."/".$tanggal."/".$newFilename;

					move_uploaded_file($_FILES['img']['tmp_name'][$i], $fileUpload);

					echo "[img]".$url."/".$fileUpload."[/img]\n";
				}

				echo '</textarea>';
			}
		}
	}

	
	?>
</div>
</body>
</html>

Keterangan :
untuk penamaan file, saya tidak menggunakan random string, melainkan menggunakan kombinasi waktu upload + nama file + ukuran file, kemudian saya enkrispi ke md5

2 thoughts on “Contoh Multiupload Image Hosting

  1. mantap om, ane jg ada rencana sih, tapi cuma bikin hosting pribadi buat upload gambar. kalo blog uda penuh kuotanya 😀 mampir juga gan ke tmpt ane fahryadam.com

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s