Minggu, 03 April 2011

Php script upload dan download file

berikut adalah PHP script untuk upload dan download file
yang dibutuhkan sebuah tabel

CREATE TABLE upload (
id int(11) auto_increment,
name varchar(30),
type varchar(30),
size int(11),
PRIMARY KEY (id)
)
script form.html


<form enctype="multipart/form-data" action="upload.php" method="POST">
<input type="hidden" name="MAX_FILE_SIZE" value="3000000" />
Pilih File: <input name="userfile" type="file" />
<input type="submit" value="Upload" />
</form>

script upload.php

<?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'];
// koneksi ke mysql
mysql_connect('dbhost','dbuser','dbpass');
mysql_select_db('dbname');
// 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) VALUES ('$fileName', '$fileSize', '$fileType')";
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 "File telah diupload";
} else {
echo "File gagal diupload";
}
?>

script list.php

<?php
mysql_connect('dbhost','dbuser','dbpass');
mysql_select_db('dbname');
$query  = "SELECT * FROM upload";
$hasil  = mysql_query($query);
while($data = mysql_fetch_array($hasil))
{
echo "<p><a href='download.php?id=".$data['id']."'>".$data['name']."</a> (".$data['size']." bytes) [ <a href='hapus.php?id=".$data['id']."'>Delete</a> ]</p>";
}
?>

script download.php

<?php
    mysql_connect('dbhost','dbuser','dbpass');
    mysql_select_db('dbname');
    // membaca id file dari link
    $id = $_GET['id'];
    // membaca informasi file dari tabel berdasarkan id nya
    $query  = "SELECT * FROM upload WHERE id = '$id'";
    $hasil  = mysql_query($query);
    $data = mysql_fetch_array($hasil);
    // header yang menunjukkan nama file yang akan didownload
    header("Content-Disposition: attachment; filename=".$data['name']);
    // header yang menunjukkan ukuran file yang akan didownload
    header("Content-length: ".$data['size']);
    // header yang menunjukkan jenis file yang akan didownload
    header("Content-type: ".$data['type']);
   // proses membaca isi file yang akan didownload dari folder 'data'
   $fp  = fopen("data/".$data['name'], 'r');
   $content = fread($fp, filesize('data/'.$data['name']));
   fclose($fp);
   // menampilkan isi file yang akan didownload
   echo $content;
   exit;
?>

Script hapus.php

<?php
    mysql_connect('dbhost','dbuser','dbpass');
    mysql_select_db('dbname');
    // membaca id file yang akan dihapus
    $id      = $_GET['id'];
    // membaca nama file yang akan dihapus berdasarkan id
    $query   = "SELECT * FROM upload WHERE id = '$id'";
    $hasil   = mysql_query($query);
    $data    = mysql_fetch_array($hasil);
    $namaFile = $data['name'];
    // query untuk menghapus informasi file berdasarkan id
    $query = "DELETE FROM upload WHERE id = $id";
    mysql_query($query);
    // menghapus file dalam folder sesuai namanya
    unlink("data/".$namaFile);
    echo "File telah dihapus";
?>

Tidak ada komentar:

Posting Komentar

Artikel Populer