Anda di halaman 1dari 7

CARA MEMBUAT SCRIPT UPLOAD DAN DOWNLOAD DENGAN PHP DAN MYSQL (PART 1) Tanpa banyak basa-basi langsung

saja saya akan me-share bagaimana cara membuat script upload dan download di php. Pertama saya membagi tutorial ini menjadi 2 bagian karena memang ada 2 cara untuk mencapai tujuan akhir kita (seperti yang di judul). Perbedaannya adalah jika cara pertama kita akan mendownloadnya langsung dari database berupa FILEDATA-nya. Sedangkan cara kedua kita mendownload dari folder tujuan upload. Untuk lebih jelasnya tentang 2 perbedaan tersebut langsung saja kita menuju cara pertama. Langkah pertama ialah menyiapkan database dengan struktur sebagai berikut : Nama Database = (terserah) dalam tutor ini saya buat dengan nama STIMATA Buat satu table dengan nama UPLOAD dengan struktur : Field Id Deskripsi Filetype Filedata Filename Filesize Tipedata(panjang) INT(11) TEXT VARCHAR(12) longblob TEXT BIGINT Atribut Primary Key , Auto Increment, Not NUll Not Null Not Null Not Null Not Null Not NUll

Langkah Kedua kita mulai menulis skrip php di editor kita. Pertama kita siapkan sebuah file untuk menyambungkan php dengan database yang baru saja kita buat tadi. <?php $host $username $password $database = = = = "localhost"; "root"; ""; "stimata";

$koneksi_mysql = mysql_connect($host,$username,$password) or die ("gaga terhubung !"); mysql_select_db($database,$koneksi_mysql) or die ("gagal memilih database !"); ?> Simpan kode di atas dengan nama koneksi.php Langka ketiga kita buat sebuah form html untuk upload. Kodenya sebagai berikut. <html> <head><title>Tutorial Upload/Download</title></head>

<body> <form enctype="multipart/form-data" method="post"> <table border="1"> <tr> <td>File</td> <td><input type="file" name="berkas"></td> </tr> <tr> <td>Deskripsi</td> <td><textarea name="keterangan" cols="30" rows="6"></textarea></td> </tr> <tr>

<td>&nbsp;</td> <td><input type="submit" value="Upload"></td> </tr> </table> </form> </body> </html> Simpan kode tersebut dengan nama upload.php. Sekarang kita akan menuliskan kode untuk memproses inputan di form tersebut. Memproses disini berarti anda memasukan inputan dari form tersebut kedalam database. Ini juga berarti kita telah sampai pada tahap proses upload karena proses upload pada tutorial pertama ini adalah memasukan file yang akan kita upload kedalam database. Kode proses formnya adalah sebagai berikut. <?php include ("koneksi.php"); //file koneksi.php yg dibbuat di langkah no 1

if ($_POST) { $filedata = addslashes(fread(fopen($_FILES['berkas']['tmp_name'], 'r'),

$_FILES['berkas']['size'])); $tipe = $_FILES['berkas']['type']; $ukuran = $_FILES['berkas']['size']; $nama_file = $_FILES['berkas']['name']; $keterangan = $_POST['keterangan'];

$result = mysql_query ("insert into upload values ('','$keterangan','$tipe','$filedata','$nama_file',$ukuran)") or die(mysql_error());

if ($result) echo "Upload sukses"; } ?> Tuliskan kode tersebut tepat dibawah file upload.php (setelah baris kode </html>). Maka jika anda jalankan projek kita akan muncul tampilan sebagai berikut.

Pilih file yang akan diupload dan tulis deskripsinya kemudian tekan tombol upload. Jika berhasil maka akan ada pesan sukses tepat dibawah form tersebut.

Langkah Berikutnya adalah menampilkan informasi data apa saja yang kita telah upload. Kodenya adalah sebagai berikut <?php include ("koneksi.php");

$data = mysql_query("select * from upload"); ?>

<html> <head> <title>Tutorial Upload_Download</title> </head>

<body> <h1>Daftar Image</h1> <table border="1"> <tr> <th>ID</th> <th>Nama file</th> <th>Tipe</th> <th>Ukuran</th> <th>Deskripsi</th> <th>Download</th> </tr> <?php while ($row =mysql_fetch_assoc($data)) { ?> <tr> <td><?php echo $row['id'] ?></td> <td><?php echo $row['filename'] ?></td> <td><?php echo $row['filetype'] ?></td> <td><?php echo $row['filesize'] ?></td> <td><?php echo $row['deskripsi'] ?></td> <td><a href="download.php?id=<?php echo $row['id'] ? >">Download</a></td> </tr>

<?php } ?> </table> <p><a href="upload.php">Upload Image</a></p> </body> </html> Simpan dengan nama index.php. Penamaan ini juga berarti jika file ini kita tasbihkan menjadi file default yang akan dijalankan pertama kali saat kita menjalankan project kita. Tampilannya sebagai berikut.

Jika kita lihat kode Index.php Ada baris kode seperti ini <td><a href="download.php?id=<?php echo $row['id'] ? >">Download</a></td> Baris tersebut adalah link download yang mengarah pada file download.php, File mana yang kita download ditentukan dari id yang kita sisipkan dalam url tersebut(baris program <?php echo $row['id'] ). Adapun kode di file download.php adalah sebagai berikut: <?php include ("koneksi.php");

$data = mysql_query ("select * from upload where id=" . $_REQUEST['id']);

if ($row = mysql_fetch_assoc($data)) { $filedata = $row['filedata'];

$deskripsi = $row['deskripsi']; $filename = $row['filename']; $filetype = $row['filetype']; $filesize = $row['filesize']; }

header('Content-type: ' . $filetype); header('Content-length: ' . $filesize); header("Content-Transfer-Encoding: binarynn"); header("Pragma: no-cache"); header("Expires: 0"); header('Content-Disposition: attachment; filename="' . $filename . '"'); echo $filedata; exit(); ?> Langkah berikutnya adalah testing apakah program download kita berjalan sesuai keinginan.

Wow... saat di klik link download langsung keluar keterangan download yang menandakan program kita sudah berjalan dengan normal. Mudah kan ?. Untuk tutorial berikutnya saya akan menulis cara upload dan download via folder. Maksudnya file kita kita letakan ke suatu folder tujuan kemudian data-data file tersebut seperti nama, ukuran, deskripsi tetap kita masukan dalam table database. Semoga tutorial ini bermanfaat bagi sarana belajar teman-teman. Full source code bisa didownload di sini loh . . . INSYA ALLAH BERSAMBUNG . . .