CREATE DATABASE (upload_download)
1 2 3 4 5 6 7 |
CREATE TABLE upload ( id int(11) auto_increment, name varchar(30), type varchar(30), size int(11), PRIMARY KEY (id) ) |
form.php
1 2 3 4 5 6 7 8 9 10 |
<html> <head><title>Upload</title></head> <body> <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> </body> </html> |
Form di atas, misalkan kita batasi size maksimum file yang diupload adalah 3MB.
upload.php
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 |
<?php // setting nama folder 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 database mysql_connect('localhost', 'root', ''); mysql_select_db('upload_download'); // meyimpan 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'"; $result = mysql_query($query); $data = mysql_fetch_array($result); 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"; } ?> |
Setelah informasi file yang akan diupload disimpan dalam database, barulah file tersebut diupload ke folder ‘data’ menggunakan perintah move_uploaded_file();
list.php
1 2 3 4 5 6 7 8 9 10 11 |
<?php mysql_connect('localhost', 'root', ''); mysql_select_db('upload_download'); $query = "SELECT * FROM `upload`"; $result = mysql_query($query); while($data = mysql_fetch_array($result)) { 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>"; } ?> |
download.php
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 |
<?php mysql_connect('localhost', 'root', ''); mysql_select_db('upload_download'); // membaca id file dari link $id = $_GET['id']; // membaca informasi file dari tabel berdasarkan id nya $query = "SELECT * FROM upload WHERE id = '$id'"; $result = mysql_query($query); $data = mysql_fetch_array($result); // header yang menunjukan nama file yang akan didownload header("Content-Disposition: attachment; filename=".$data['name']); // header yang menunjukan ukuran file yang akan didownload header("Content-length: ".$data['size']); // header yang menunjukan 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; ?> |
hapus.php
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 |
<?php mysql_connect('localhost', 'root', ''); mysql_select_db('upload_download'); // membaca id file yang akan dihapus $id = $_GET['id']; // membaca nama file yang akan dihapus berdasarkan id $query = "SELECT * FROM `upload` WHERE id = '$id'"; $result = mysql_query($query); $data = mysql_fetch_array($result); $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"; ?> |
Dalam script tersebut terdapat proses membaca nama file yang akan dihapus berdasarkan id nya. Nama file ini nantinya akan dijadikan acuan dalam proses menghapus file dalam folder menggunakan unlink().