Membuat halaman upload & download

Bikin halaman upload & download

Pernah maen - maen ke web 4shared atau indowebster atau web web laen yang nyedian kolom buat upload data terus bisa buat download data juga ga? Nah, gw sekarang pengen coba shared ilmu yang udah gw rangkum dari berbagai blog yang udah ngasih skrip buat upload sama download. 

oke sebelumnya kita harus punya database dan folder directorynya nih, database itu nanti isinya cuma menampilin informasi tentang file yang di upload, sedangkan folder directorynya itu nanti buat tempat file file yang udah di upload, folder ini kita taro di direktori skrip srip kita yaa..  

lanjut ya, ayo kita bikin dulu databasenya, kemaren kita kan udah bikin database dengan nama 'latihan' sekarang tinggal kita bikin aja dulu tablenya dengan nama 'upload' tanpa tanda kutip ya. fieldnya macem begini nih cuy


CREATE TABLE IF NOT EXISTS `upload` (
  `id` int(5) NOT NULL auto_increment,
  `name` varchar(50) NOT NULL,
  `type` varchar(30) NOT NULL,
  `size` int(11) NOT NULL,
  `username` varchar(25) NOT NULL,
  `email` varchar(50) NOT NULL,
  `datetime` datetime NOT NULL,
  PRIMARY KEY  (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=1 ;

field id jadi primary keynya, terus name itu nanti buat nama filenya, typenya itu nanti nyesuaiin diri sama file yang di upload kok, size nya juga, nah kalo username, email itu sebenernya tambahan aja sih supaya nanti orang gak asal upload aja tapi mereka juga ngasih tau nama mereka sama email mereka hehee....

bikin dulu skrip buat konekin ke databasenya ya, simpen dengan nama connectup.php

<?php
$host ="localhost";
$username = "root";
$password = "monkey";
$db_name = "tutorial";
$tbl_name = "upload";

mysql_connect("$host","$username","$password") or die ("Cannot connect to server");

mysql_select_db("$db_name")or die("cannot select database");

?>

skrip buat konekin ke database udah kelar, sekarang kita bikin form buat ngupload datanya ya :D
tapi mohon maaf nih kalo ngasih contohnya cuma standar banget nyahaahaa... yah kira kira bakalan kayak gini lah 




langsung aja nih skripnya buat bikin form kayak gonoh, cuman mungkin gak pake warna yaa, hehee, itu gw print screen dari website abal - abal bikinan gw di http://galau.site88.net, simpen skrip ini dengan nama file formup.php


<html>
<head><title>Form Upload</title></head>
<body>
<h1> Upload </h1>

<table width="600" border="0" align="center" cellpadding="3" cellspacing="0">
<tr>
<td><strong> Upload your problem in file document here... </strong>
</td>
</tr>

<table width="600" border="0" align="center" cellpadding="0" cellspacing="1" bgcolor="#cccccc">
<tr>
<form enctype="multipart/form-data" method="POST" action="upload.php">
<td>
<table width="600" border="0" cellpadding="3" cellspacing="1" bgcolor="#FFFFFF">
<tr>
<td width="117">
<input type="hidden" name="MAX_FILE_SIZE" value="3000000"/> // valuenya itu dalam satuan kb
</td>
<td width="14">&nbsp;</td>
<td width="357">&nbsp;</td>
</tr>
<tr>
<td>Input your name</td>
<td>:</td>
<td><input name="user" type="text" id="user" size="25" maxlength="25" title="masukan nama anda"></td>
</tr>
<tr>
<td>Input your email</td>
<td>:</td>
<td><input name="email" type="text" id="email" size="25" maxlength="50" title="masukan email anda"></td>
</tr>
<tr>
<td>Browse Your File</td>
<td>:</td>
<td>
<input name="userfile" type="file"/></td>
</td>
</tr>
<tr>
<td>&nbsp;</td>
<td>&nbsp;</td>
<td><i>max size 3 mb, only for *.doc *.pdf</i>
</td>
</tr>
<tr>
<td>&nbsp;</td>
<td>&nbsp;</td>
<td><input type="submit" value="Upload"/>
</td>
</tr>

</table>
</td>
</form>
</tr>
</table>
</body>
</html>

Sebelum berlanjut, tadi kan gw udah sempet sindir tentang folder kan?? nah sekarang kita bikin dulu aja foldernya dengan nama 'data' tanpa tanda kutip yah. jadi nanti file - file yang ke upload bakalan ke simpen di folder tersebut, oh iya folder ini disimpennya satu tempat yah sama skrip connectup.php, formup.php, upload.php. Sekarang kita bikin skrip buat masukin data data yang ada di form ke dalam database dan ke folder data yah. nih skripnya jangan lupa simpen dengan nama upload.php yah:

<?php

include('connectup.php');
 // setting nama folder tempat upload
$uploaddir = 'data/';

// membaca nama file yang diupload
$fileName = $_FILES['userfile']['name'];     

// nama file temporary yang akan disimpan di server
$tmpName  = $_FILES['userfile']['tmp_name']; 

// membaca ukuran file yang diupload
$fileSize = $_FILES['userfile']['size'];

// membaca jenis file yang diupload
$fileType = $_FILES['userfile']['type'];

$username = $_POST['user'];
$email      = $_POST['email'];
$datetime = date("y-m-d h:i:s");
$kode_user= $_POST['kode_user'];
$kode_server = $_POST['kode_server'];

// menyimpan properti atau informasi file ke tabel upload dalam db
// dengan terlebih dahulu mengecek ada tidaknya nama file dalam tabel

$query = "SELECT count(*) as jum FROM upload WHERE name = '$fileName'";
$hasil = mysql_query($query);
$data  = mysql_fetch_array($hasil);

if ($data['jum'] > 0)
{
   $query = "UPDATE upload SET size = '$fileSize' WHERE name = '$fileName'";
}
else $query = "INSERT INTO upload (name, size, type, username, email, datetime) VALUES ('$fileName', '$fileSize', '$fileType', '$username', '$email', '$datetime')";

mysql_query($query);

// menggabungkan nama folder dan nama file
$uploadfile = $uploaddir . $fileName;

// proses upload file ke folder 'data'
if (move_uploaded_file($_FILES['userfile']['tmp_name'], $uploadfile)) {
    echo "<script>alert('File has been uploaded');</script>";
    echo "<meta http-equiv='refresh' content='0;URL=index.php'>";
} else { echo "file failed to upload";
}

?>

Nah kelar juga kan bikin halaman buat ngupload data, sekarang coba dulu di browser deh berhasil gak skripnya? kalo berhasil nanti di dalem table 'upload' bakalan ada informasi sebuah file terus di dalem folder data bakalan ada file yang udah kita upload, kalo gak berhasil coba diliat liat lagi skripnya, mungkin ada salah ketik. Kalo udah sukses sekarang tinggal kita bikin aja halaman buat ngedownload sama sedikit belajar buat mengapus file yang udah kesimpen lewat halaman php lagi. Ya kira - kira seperti ini lah nanti form buat liat daftar list yang udah ke uploadnya



Gimane bro ?? mayan kan ?? nyahaha kita bisa download (ngambil data) sama ngapus file file yang pengen kita buang. bikin dulu ah form nya ya nih skripnya, simpennya dengan nama liat.php yaa

<html>
<head><title>Liat</title></head>
<body>
<h2><center>List data yang telah di upload</center><h2>
<table border='1' cellpadding='5' cellspacing='1' align='center' >
<tr>
<th>user</th>
<th>email</th>
<th>nama file</th>
<th>type</th>
<th>size</th>
<th>datetime</th>
<th>&nbsp;</th>
<th>&nbsp;</th>
</tr>

<?php

include'connectup.php';

$sql="SELECT * FROM upload";
$result=mysql_query($sql);

while ($isi=mysql_fetch_array($result))

{

$user         = $isi['username'];
$email        = $isi['email'];
$namafile     = $isi['name'];
$type        = $isi['type'];
$size        = $isi['size'];
$datetime    = $isi['datetime'];

echo "
<tr>
<td>$user</td>
<td>$email</td>
<td>$namafile</td>
<td>$type</td>
<td>$size</td>
<td>$datetime</td>
<td><a href='download.php?id=".$isi['id']."'>Download</a></td>
<td><a href='hapus.php?id=".$isi['id']."'>Delete</a></td>
</tr>";

}
?>
</table>
</body>
</html>

liat tulisan yang download.php sama hapus.php gak ?? itu skrip berfungsi buat ngedownload file sama buat ngehapus file, sekarang kita bikin yang download.php dulu ya, nih skripnya :

<?php
include'connectup.php';
$id=$_GET['id'];
$query="SELECT * FROM upload WHERE id='$id'";
$result=mysql_query($query);
if(!result)
{echo mysql_error(); exit;}

$row=mysql_fetch_array($result);
ob_start();
header("content-Transfer-Encoding:binary\n");
header("Content-Disposition: attachment; filename=".$row['name']);
header("Content-length:".$row['size']);
header("Content-type:".$row['type']);

ob_end_flush();

$fp = fopen("data/".$row['name'],'r');
$content = fread($fp, filesize('data/'.$row['name']));

fclose($fp);
echo $content;

?>
*nanti kalo ada error dalam link buat downloadnya coba tolong ditambahin ' ../ ' tanpa tanda kutip di tulisan warna orange sebelum tulisan data, jadi nanti tulisannya begini ../data/
udah kelar ?? lanjut lah buat bikin skrip hapus.php, nih skripnya monggo :

 <?php

include'connectadm.php';

$id = $_GET['id'];

$query="SELECT * FROM upload WHERE id='$id'";
$result =mysql_query($query);
$data = mysql_fetch_array($result);
$namaFile = $data['name'];

//query untuk menghapus

$query="DELETE FROM upload WHERE id='$id'";
mysql_query($query);

//menghapus file dalam folder sesuai namanya

unlink("data/".$namaFile);
echo"<script>alert('File berhasil dihapus');</script>";
echo "<meta http-equiv='refresh' content='0;URL=liat.php'>";

?>
nanti juga kalo di skrip hapus ini ada masalah di unlink nya, coba di tambahin lagi ya ' ../ ' tanpa tanda kutip di tulisan warna orange sebelum tulisan data, jadi nanti tulisannya begini ../data/



Sekian deh skrip skrip buat halaman upload, download, & hapus monggo dicoba ya, tapi mungkin nanti ada trouble, misal pas download mungkin ke download tapi file nya ga bisa kebuka, tapi setelah gw utak atik ternyata itu bermasalah di tipe browsernya, yang paling bagus sih di browser Google Chrome, Opera, Mozilla Firefox versi 6.0 ke atas.


Sumber : http://svaraseisha.blogspot.com/2012/06/bikin-halaman-upload-download.html 
Share:

Tidak ada komentar:

Posting Komentar

Blogger Tricks

Blogger Themes