Dalam pembuatan aplikasi, kegiatan mengupload file merupakan suatu hal yang cukup penting. Contoh yang paling gampang ditemui adalah seperti mengupload gambar atau foto untuk mengganti foto profil kita dalam suatu halaman web. Perlu diketahui bahwa setiap file memiliki ekstensinya tersendiri, seperti misalnya sebuah file gambar ada yang berekstensi JPG, PNG, BMP maupun GIF. Begitu juga dengan file lain seperti file word dengan ekstensi DOCX, excel dengan XLSX dan lain sebaginya.
Dalam artikel kali ini kita coba untuk membuat sebuah aplikasi yang dapat mengupload sebuah file dengan ekstensi atau yang bertipe PDF. Apa itu PDF? PDF atau Portable Document Format adalah sebuah format file yang diciptakan oleh Adobe System, Inc. File jenis ini sangat populer dan banyak digunakan terutama dalam bentuk ebook karena dapat dengan mudah dibuka menggunakan berbagai aplikasi gratis.
File ini banyak digunakan dan sangat populer sebagai sebuah media dalam bentuk ebook yang dapat didistribusikan secara mudah. File ini juga dapat dibuka dengan mudah dengan aplikasi gratis bahkan dapat langsung dilihat dari halaman browser seperti yang pernah dipelajari pada artikel contoh kode menampilkan pdf di web. Dengan kode tersebut kita dapat mengembangkannya lagi untuk menjadi sebuah aplikasi berbasi web yang dapat mengelola file PDF dengan mudah.
Persiapan
Membuat database dan tabel untuk menyimpan data file PDF
- Nama Database: db_aplikasi
- Nama Tabel: data_file
- id: INT (11) Primary Key auto increament
- judul: VARCHAR (160)
- nama_file: VARCHAR(20)
- folder/direktori file
- hapus.php
- index.php
- koneksi.php
- upload.php
- view.php
Aplikasi Upload PDF dengan PHP & MySQL |
Jika persiapannya sudah dipahami maka kita akan memulainya dengan membuat databasenya terlebih dahulu. Perintah SQL pembuatan database dan tabel dapat dilihat dibawah ini.
SET SQL_MODE="NO_AUTO_VALUE_ON_ZERO"; -- -- Database: `db_aplikasi` -- -- -------------------------------------------------------- -- -- Table structure for table `data_file` -- CREATE TABLE IF NOT EXISTS `data_file` ( `id` int(11) NOT NULL AUTO_INCREMENT, `judul` varchar(160) NOT NULL, `nama_file` varchar(20) NOT NULL, PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=1 ;
Setelah database siap maka kita mulai dengan membuat file koneksi.php terlebih dahulu. File koneksi.php berguna untuk menghubungkan file php dengan MySQL server. Dengan begitu kita dapat melakukan perintah DML (Data Manipulation Language) seperti Select, Insert, Update dan Delete pada tabel dalam basis data kita.
Sourcecode koneksi.php
<?php $server = "localhost"; $username = "root"; $password = ""; $database = "db_aplikasi"; $koneksi = mysqli_connect($server,$username,$password,$database); ?>
Untuk username dan password apabila dikerjakan di localhost menggunakan XAMPP atau WAMP biasanya berisi root dan kosong secara default. Namun apabila dihosting ke server provider silahkan ganti dengan username dan password yang di generate dari cpanel masing-masing.
Selanjutnya kita membuat file index.php sebagai portal untuk mengupload dan menampilkan list dari dokumen PDF yang telah diupload.
Sourcecode index.php
<?php include "koneksi.php"; ?> <!DOCTYPE html> <html> <head> <title>Aplikasi Untuk Mengupload File PDF Dengan PHP | belajarwebpedia.com</title> <style type="text/css"> body { font-family: verdana; font-size: 12px; } a { text-decoration: none; color: #3050F3; } a:hover { color: #000F5E; } </style> </head> <body> <h1>Aplikasi Untuk Mengupload File PDF Dengan PHP</h1> <hr> <form action="upload.php" method="POST" enctype="multipart/form-data"> <table width="600" border="0"> <tr> <td width="100">Judul File</td> <td><input type="text" name="judul" placeholder="Judul" required></td> </tr> <tr> <td width="100">File PDF</td> <td><input type="file" name="nama_file" required></td> </tr> <tr> <td width="100"></td> <td><input type="submit" value="Upload File"></td> </tr> </table> </form> <hr> <b>List File PDF</b> <table width="800" border='0' cellpadding="2" cellspacing="1" bgcolor="#000000"> <tr> <th bgcolor="#ffffff">Judul</th> <th bgcolor="#ffffff" width="100">View</th> <th bgcolor="#ffffff" width="100">Hapus</th> </tr> <?php $query = mysqli_query($koneksi,"SELECT * FROM data_file ORDER BY id DESC"); while($data=mysqli_fetch_array($query)) { ?> <tr> <td bgcolor="#ffffff"><?php echo $data['judul'];?></td> <th bgcolor="#ffffff"><a href="view.php?id=<?php echo $data['id'];?>">Lihat File</a></th> <th bgcolor="#ffffff"><a href="hapus.php?id=<?php echo $data['id'];?>">Hapus File</a></th> </tr> <?php } ?> </table> </body> </html>
Kemudian kita membuat file pemrosesnya yaitu upload.php
Dalam file upload.php ini kita melakukan beberapa hal yaitu:
- Melakukan pengecekan terhadap tipe file yang digunakan. Untuk file pdf MIME TYPE nya adalah application/pdf jadi bukan berdasarkan ekstensi nama, namun berdasarkan MIME TYPE dari file tersebut
- Apabila pengecekan bernilai true maka kita akan menyimpan data-data kedalam database terlebih dahulu menggunakan perintah INSERT untuk mendapatkan ID dari data tersebut. ID itu nantinya akan digunakan sebagai penamaan file pdf supaya tidak ada nama file yang sama/unik
- Apabila ID telah diperoleh kemudian kita melakukan proses upload file dengan fungsi move_uploaded_file(); fungsi ini akan mengirimkan file yang kita upload ke direktori server yang telah kita tentukan
- Selanjutnya kita tinggal mengupdate nama file dengan penamaan yang baru kedalam database menggunakan perintah UPDATE
Berikut adalah sourcecode upload.php
<?php include "koneksi.php"; //pengecekan tipe harus pdf $tipe_file = $_FILES['nama_file']['type']; //mendapatkan mime type if ($tipe_file == "application/pdf") //mengecek apakah file tersebu pdf atau bukan { $judul = trim($_POST['judul']); $nama_file = trim($_FILES['nama_file']['name']); $sql = "INSERT INTO data_file (judul) VALUES ('$judul')"; mysqli_query($koneksi,$sql); //simpan data judul dahulu untuk mendapatkan id //dapatkan id terkahir $query = mysqli_query($koneksi,"SELECT id FROM data_file ORDER BY id DESC LIMIT 1"); $data = mysqli_fetch_array($query); //mengganti nama pdf $nama_baru = "file_".$data['id'].".pdf"; //hasil contoh: file_1.pdf $file_temp = $_FILES['nama_file']['tmp_name']; //data temp yang di upload $folder = "file"; //folder tujuan move_uploaded_file($file_temp, "$folder/$nama_baru"); //fungsi upload //update nama file di database mysqli_query($koneksi,"UPDATE data_file SET nama_file='$nama_baru' WHERE id='$data[id]' "); header('location:index.php?pesan=upload-berhasil'); } else { echo "Gagal Upload File Bukan PDF! <a href='index.php'> Kembali </a>"; } ?>
Setelah itu kita dapat membuat perintah untuk menghapus data dengan kode berikut ini
Sourcecode hapus.php
<?php include "koneksi.php"; $id = mysqli_real_escape_string($koneksi,$_GET['id']); $query = mysqli_query($koneksi,"DELETE FROM data_file WHERE id='$id' "); header('location:index.php?pesan=hapus-berhasil'); ?>
Bagaimana? Tidak terlalu sulit bukan? Selanjutnya adalah tahap yang terakhir yaitu menampilkan file pdf yang tadi sudah kita upload kedalam halaman web. Pada artikel sebelumnya kita telah mempelajari cara ini. Oleh karena itu kita tinggal menggabungkannya saja sehingga kode tersebut dapat berjalan optimal. Dalam aplikasi ini link untuk melihat file pdf ada pada bagian view pada tabel kita. Untuk lebih jelasnya dapat melihat kode dibawah sebagai referensi untuk menampilkan file PDF
Sourcode view.php
<?php include "koneksi.php"; ?> <!DOCTYPE html> <html> <head> <title>Aplikasi Untuk Mengupload File PDF Dengan PHP | belajarwebpedia.com</title> <style type="text/css"> body { font-family: verdana; font-size: 12px; } a { text-decoration: none; color: #3050F3; } a:hover { color: #000F5E; } </style> </head> <body> <?php $id = mysqli_real_escape_string($koneksi,$_GET['id']); $query = mysqli_query($koneksi,"SELECT * FROM data_file WHERE id='$id' "); $data = mysqli_fetch_array($query); ?> <h1>Aplikasi Untuk Mengupload File PDF Dengan PHP</h1> <hr> <b>Judul:</b> <?php echo $data['judul'];?> | <a href='index.php'> Kembali </a> <hr> <embed src="file/<?php echo $data['nama_file'];?>" type="application/pdf" width="800" height="600" > </body> </html>
Hasil Tampilan Aplikasi
Halaman Index |
Halaman View |
Yak tidak terlalu susah kan? Kode ini masih bisa dikembangkan untuk keperluan selanjutnya dengan ide-ide lainnya. Sekian dahulu tutorial kali ini dan selamat mencoba ya ^^
Upadate : revisi kode menggunakan mysqli
Labels:
Aplikasi Web,
MySQL,
PHP,
Tutorial,
Upload PDF
Terima kasih telah membaca Aplikasi Untuk Mengupload PDF Dengan PHP Dan MySQL. Bila bermanfaat boleh di share yah :)
12 Comment for "Aplikasi Untuk Mengupload PDF Dengan PHP Dan MySQL"
kenapa filenya selalu gagal upload padalahudah ngikutin sama seperti yang diatas
kalau gagal kemungkinan filenya bukan pdf, atau karena webservernya udah ngga support lagi dengan mysql function, mungkin nanti akan direvisi ke mysqli sourcecodenya
ada muncul salah di koneksi.php
gimana caranya..?
kenapa gak bisa di view file yang sudah di upload, object not found
Aplikasinya Mantap ... Running Well
terimakasih.. sangat terbantu
nomor yg tengah kalo dihapus masih loncat loncat mas kalo bisa ditambahkan update nya kalo dihapus ditengah nomornya masih urut
Terima kasih ya
Terima Kasih om,, sangat membantu.. cuma sedikit pertanyaan om, bagaimana cari melihat file pdf yang sudah di upload di android/smartphone? karena saat lihat file di smartphone file pdf nya tidak bisa terbaca.. Mohon pencerahannya..
Terima Kasih
Notice: Undefined index: id in C:\xampp\htdocs\file\view.php on line 24
$id = mysqli_real_escape_string($koneksi,$_GET['id']);
kalo filenya ga ke upload ke database gimana solusinya mas?