Menu

Detail Artikel

Home/ Web Design/Detail Artikel

Membuat Upload dan Download Menggunakan PHP & Mysql

Sebenarnya dalam upload file sendiri terdapat dua jenis yaitu menyimpan file ke direktori kita dan yang kedua adalah menyimpan file ke database MySQL. Kali ini saya akan menerangkan bagaimana caranya upload dan download file dan menyimpannya ke direktori kita.

Langkah pertama kita akan membuat table yang berfungsi untuk menyimpan data dari file yang akan di upload. Kenapa data dari file tersebut harus disimpan? tujuannya adalah agar memudahkan dalam melakukan download.

Buatlah tabel dengan nama upload

CREATE TABLE `upload` (
`fileid` int(11) NOT NULL auto_increment,
`filename` varchar(30),
`type` varchar(40),
`size` int(11),
`path` varchar(20),
PRIMARY KEY (`fileid`)
);

Selanjutnya kita akan membuat file database.php untuk koneksi ke database MySQL

<?php
$db_hostname=”localhost”;
$db_username=”root”; // username anda
$db_password=””; // password anda
$db_name=”latihan”; // nama database anda

function connect_db() {
global $db_hostname, $db_username, $db_password, $db_name;
$conn = mysql_connect($db_hostname, $db_username, $db_password) or die (`Sorry cannot connect to the database because: ` . mysql_error());;
mysql_select_db($db_name);
}
?>

Kemudian kita buat form untuk upload file. Simpan file tersebut dengan nama form_upload.php

<html>
<head><title>Upload</title></head>
<body>
<font align=center><h2>Form Upload</h2></font>
<form action=”upload.php” method=”post” enctype=”multipart/form-data” name=”uploadform”>
<table align=center>
<tr><td>File</td><td><input name=”userfile” type=”file”></td></tr>
<tr><td></td><td><input name=”tombol” type=”submit” value=”Upload”></td></tr>
</table>
</form>
</body>
</html>

Selanjutnya buatlah file upload.php untuk menyimpan data file ke tabel upload. Di dalam file upload.php terdapat variable $uploadDir, variable ini berisi path / folder yang berfungsi untuk menyimpan file yang telah di upload. Untuk itu ubah hak akses folder tersebut agar bisa di isi file.

<?php
require_once(”database.php”); //memanggil file database.php

connect_db(); // memanggil fungsi connect_db yang ada di file database.php
if($_POST[”tombol”])
{
$fileName = $_FILES[`userfile`][`name`];
$tmpName = $_FILES[`userfile`][`tmp_name`];
$fileSize = $_FILES[`userfile`][`size`];
$fileType = $_FILES[`userfile`][`type`];

$uploadDir = `C:/apache2triad/htdocs/upload/`;
$filePath = $uploadDir . $fileName;

$result = move_uploaded_file($tmpName, $filePath);
if (!$result) {
$error_message=”Error uploading file”;
include(”admin_error.php”);
}

if(!get_magic_quotes_gpc())
{
$fileName = addslashes($fileName);
$filePath = addslashes($filePath);
}

$query = ”INSERT INTO upload(filename,type,size,path) VALUES (`$fileName`, `$fileType`, `$fileSize`, `$fileName`)”;
$result=mysql_query($query);
if($result){
echo ”upload file berhasil dilakukan <br> <a href=`daftar_file.php`>Daftar File</a>”;
}else{
echo ”<br>File can`t uploaded<br>”;
}
}
?>

Selanjutnya kita akan membuat file dengan nama daftar_file.php. File ini digunakan untuk menampilkan data yang di inputkan oleh user.

<html>
<head><title>Daftar File</title></head>
<body>
<?php
require_once(”database.php”);
connect_db();

$query=mysql_query(”SELECT * FROM upload”);
$row=mysql_fetch_row($query);
if(!$row)
echo ”tabel upload kosong”;
else
{
echo ”<h2>Daftar File</h2>”;
echo ”<table border=1>”;
echo ”<tr>”;
echo ”<td>Nama File</td>”;
echo ”<td>Type</td>”;
echo ”<td>Size</td>”;
echo ”<td>Download</td>”;
echo ”</tr>”;

do{
list($fileid,$filename,$type,$size,$path)=$row;
echo ”<tr>”;
echo ”<td>$filename</td>”;
echo ”<td>$type</td>”;
echo ”<td>$size</td>”;
echo ”<td><a href=download.php?fileid=$fileid>Download</a></td>”;
echo ”</tr>”;
}while($row=mysql_fetch_row($query));
}

?>
</body>
</html>

Selanjutnya kita akan membuat file download.php untuk melakukan download.

<?php
require_once("database.php");
connect_db();
if(isset($_GET[fileid]))
{
$id = $_GET[fileid];
$query = "SELECT * FROM upload WHERE fileid = $fileid";
$result = mysql_query($query) or die(Error, query failed);
list($fileid,$filename,$type,$size,$path)=mysql_fetch_array($result);

header("Content-Disposition: attachment; filename=$filename");
header("Content-length: $size");
header("Content-type: $type");

readfile("upload/$path");
}
?>

Selanjutkan kita akan membuat file delete.php untuk menghapus file

<?
require_once("database.php");
connect_db();
if(isset($_GET[fileid]))
{
$id = $_GET[fileid];
$query = "SELECT * FROM upload WHERE fileid = $fileid";
$result = mysql_query($query) or die(Error, query failed);
list($fileid,$filename,$type,$size,$path)=mysql_fetch_array($result);
unlink("upload/$path");
mysql_query("delete from upload where fileid=$fileid");
header("location:./daftar_file.php");
}
?>

Artikel Lainnya

Komentar Anda

52PNn

15 Komentar

Nazar

11-06-2015 | 12:03:18 nazar0042@gmail.com
Makasih infonya sobat, nice...

sepatu gunung

02-12-2014 | 11:08:49 kartiwahadi@yahoo.co.id
terim kasih banyak ilmu tutorialnya sangat berharga by http://sepatugunung.net

Rudy setiawan

06-09-2014 | 06:23:51 rudyxfriends77@gmail.com
Nice :)

adon

15-04-2013 | 11:55:35 pranadiyanta@yahoo.com
seep...tq infonya. www.smartrack.co.id

damri

31-03-2013 | 08:10:22 dhamryd@yahoo.co.id
blom lengkap.. kode untuk admin_error.php nya mana kok ngk ditulis?? tolong donk lengkapi

ade

03-02-2013 | 08:33:29 sopiatis38@yahoo.com
minta

yosefa

25-11-2012 | 07:02:30 http://blogger-id.net
Mantap gan, kalau dikembangkan lagi sepertinya bisa jadi mirip xchanger, plunder, dll.

FR-SYSTEM.WEB.ID

12-09-2012 | 08:10:18 contact@fr-system.web.id
boleh jika nama database dan tabel sama,

faizul

12-09-2012 | 12:57:36 zhu_adanyah@yahoo.com
mas, nama upload "CREATE TABLE `upload` (" sama dengan nama database ? $db_name=”latihan”; // nama database anda

FR-SYSTEM.WEB.ID

20-07-2012 | 06:03:24 contact@fr-system.web.id
Untuk FIle Pendukung artikel di atas, bisa anda download di  http://fr-system.web.id/proc_download.php?download=134

FR-SYSTEM

20-07-2012 | 05:47:45 frwebhost@gmail.com
@toni,nama tabel yang dibuat sebelumnya apa? contoh diatas nama tabelnya upload, jadi ditulisnya select * from upload

afrioni

16-12-2011 | 12:42:18 afrioni@afrioni.web.id
kalau membatasi extensi filenya bagaimana caranya mas?

yuli

18-07-2011 | 10:09:37 yuli_12084857@yahoo.com
bagus banget mas..makasih ya informasinya,,ngebantu aku banget..

toni

23-06-2011 | 09:34:30 amrireturn22@gmail.com
mas, mau tanya. aku udah berhasil upload, tapi downloadnya yang gk bisa. ada tulisan Error, query failed mas. tolong bantuannya.trims

FR-SYSTEM.WEB.ID

14-03-2011 | 04:30:12 contact@fr-system.web.id
web server yg di paket apa? Xampp / wampp / phptriad / apa?

Produk Kami

Popular Post

Facebook Page

Statistik Pengunjung

  • Hari ini
    :
    258
  • Kemarin
    :
    499
  • Bulan ini
    :
    15228
  • Tahun ini
    :
    62713
  • Total
    :
    2276814
  • Hits Count
    :
    3360146
  • Now Online
    :
    3 Users