berikut adalah PHP script untuk upload dan download file
yang dibutuhkan sebuah tabel
CREATE TABLE upload (script form.html
id int(11) auto_increment,
name varchar(30),
type varchar(30),
size int(11),
PRIMARY KEY (id)
)
<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