PHP?
LANGKAH – LANGKAH MENGUPLOAD FILE KE
DATABASE (tipe BLOB)
Upload atau dalam bahasa indonesia
unggah, berarti mengirim file dari komputer client ke komputer server. Proses
upload telah banyak digunakan oleh web – web ternama sebagai file hosting, dan
tentu saja dibutuhkan kapasitas memory yang lebih besar dari sisi server.
Sementara itu dari segi client sebelum melakukan proses upload biasanya harus
memiliki akun dari website penyedia layanan penyimpanan file ini. Akun inilah
yang kemudian digunakan untuk beberapa keperluan, seperti link download bagi
pemilik akun. Atau hanya sekedar dijadikan media penyimpan data secara online,
yang tentunya bisa menghemat kapasitas hardisk pemilik akun.
Beberapa website penyedia layanan
unggah file antara lain :
Didalam aplikasi ini pengguna dapat mengunggah foto, video atau file – file lainya. Aplikasi ini digunakan sebagai media komunikasi publik atau sering disebut jejaring sosial karena siapapun bisa menggunakan aplikasi ini.
2. 4shared
Mungkin bagi anda yang mempunyai akun di 4shared sudah terbiasa melakukan proses upload file. Proses upload ini juga mengharuskan client tersebut sebagai user. Sehingga proses upload dapat jelas kepemilikan file. 4shared banyak digunakan sebagai media penyimpan file untuk link download, yang tentunya setiap kali proses download terjadi ada timbal balik tersendiri bagi pemilik akun.
3. Youtube
Jika anda memiliki video yang menarik, anda dapat mengunggahnya di situs ini gratis, dengan catatan anda adalah member dari situs tersebut.
4. Dll (hampir setiap aplikasi internet dapat melakukan proses upload / download)
Sebelum
memulai pembahasan mengenai upload file ke database terlebih dahulu kita
cermati kebutuhan yang akan digunakan nantinya :
a.
Tabel
: image (id, name, image, type, size).
a.
Config.php
b.
Index.php
c.
Save.php
d.
Show.php
e.
GetImage.php
Nah
semua kebutuhan telah tersedia sekarang tinggal memulai proses pengerjaan,
sebelumnya kita buat dulu database beserta tabelnya dengan SQL berikut :
--
-- Database: `imagedb`
--
CREATE DATABASE `imagedb` DEFAULT CHARACTER SET latin1 COLLATE
latin1_swedish_ci;
USE `imagedb`;
-- --------------------------------------------------------
--
-- Table structure for table `image`
--
CREATE TABLE `image` (
`id` int(11) NOT NULL
auto_increment,
`name` varchar(32) NOT
NULL,
`image` longblob NOT
NULL,
`type` varchar(32) NOT
NULL,
`size` varchar(32) NOT
NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT
CHARSET=latin1 AUTO_INCREMENT=1 ;
CREATE DATABASE `imagedb`
digunakan untuk membuat database dengan nama imagedb.
USE `imagedb`
digunakan untuk mengakses ke database imagedb sebelum proses pembuatan tabel
berlangsung. Sementara CREATE
TABLE `image digunakan
untuk membuat tabel dengan struktur :
Tabel
sudah terbuat sekarang kita membuat file – file php sebagai media proses upload
filenya.
1. Config.php
<?php
/*
config.php
untuk mengakses database
imagedb
*/
$host='localhost';
$user='root';
$pass='';
$dbname='imagedb';
$connect =
mysql_connect($host,$user,$pass) or die(mysql_error());
if($connect){
$db=mysql_select_db($dbname) or die(mysql_error());
}
?>
Pada script diatas mysql_connect digunakan untuk mengakses
ke localhost dengan parameter yang dibawa adalah nama host (karena percobaan
menggunakan web server lokal maka tulis localhost) $host juga bisa ditulis menggunakan alamat IP (IP Address) komputer
server, jika kita menggukan komputer lokal maka bisa ditulis localhost atau alamat IP-nya 127.0.0.1. Kemudian username yang ada
di MySQL beserta password yang digunakan. Pada defaultnya MySQL mempunyai
username “root” dan tanpa password.
Kemudian pada variabel $dbname isikan
nama database yang telah dibuat tadi. Query mysql_select_db digunakan untuk
mengakses ke dalam database imagedb.
Kemudian script mysql_error digunakan
untuk menampilkan pesan error jika mungkin terdapat kesalahan dalam menulis
program atau kendala teknis yang lain.
2. Index.php
<html>
<head>
<title>Form Upload</title>
<style typpe='text/css'>
body{font-family:
tahoma,arial,helvetica;}
table.upload{width:
400px;height:auto;border: 0.1em solid #5a6600;text-align: left;font-size:
12px;background: #fdfad9;}
</style>
</head>
<body>
<form method='POST' action='save.php' enctype='multipart/form-data'>
<table class='upload'>
<tr>
<th colspan='2'>Pilih File</th>
</tr>
<tr>
<td>Pilih File</td>
<td><input type='file' name='foto' /><input type='submit' name='upload' value='Unggah' /></td>
</tr>
</table>
</form>
</body>
</html>
Pada kode diatas akan menampilkan
output seperti berikut :
Index |
3. Save.php
<?php
//membuka koneksi ke
MySQL
include('config.php');
//mengambil parameter
yanmg dikirim dari form
$file = $_FILES['foto']; //bentuknya array
$upload = $_POST['upload'];
//mengambil atribut dari
file misal (nama,tipe, dan kode binary)
$file_name = addslashes($_FILES['foto']['name']); //nama file
$file_type = $_FILES['foto']['type']; //type file
$file_size = $_FILES['foto']['size']; //ukuran file dalam byte
$tmp_name = $_FILES['foto']['tmp_name']; //path tempat file tersimpan
//jika data ada isinya
maka lakukan insert data
if(!empty($upload) and !empty($file_name)){
//lakukan proses filter
tipe file
if($file_type == "image/jpeg" or
$file_type ==
"image/jpg" or
$file_type ==
"image/png" or
$file_type ==
"image/gif"){
//lakukan filter ukuran file
if($file_size >
"90000"){
echo"ukuran file terlalu besar, <a
href='javascript: history.go(-1);'> Ulangi </a>";
}else{
$imgData =
addslashes(file_get_contents($tmp_name)); //mengambil kode binary
dari path file
$ukuranFoto =
getimagesize($tmp_name);
$ukuranFoto2 =
addslashes($ukuranFoto[3]); //mengambil ukuran file
foto
//lakukan insert
$queryInsert =
mysql_query("insert into image
values(null,'$file_name','$imgData','$file_type','$ukuranFoto2')")or die('Foto gagal
ditambahkan : '.mysql_error());
if($queryInsert){
echo"
<script
type='text/javascript'>
alert('File berhasil
diupload');
document.location= 'getImage.php';
</script>
";
}else{
echo"
<script
type='text/javascript'>
alert('File gagal diupload');
document.location= 'index.php';
</script>
";
}
} //jika ukuran file telah sesuai
}else{
// jika tipe file salah
echo"tipe file salah,
<a href='javascript: history.go(-1);'> Ulangi </a>";
} //jika tipe file benar
}else{
//bila file yang diupload
kosong
echo" file kosong,
<a href='javascript: history.go(-1);'> Ulangi </a>";
}
?>
Penjelasan :
//mengambil atribut dari
file misal (nama,tipe, dan kode binary)
$file_name = addslashes($_FILES['foto']['name']); //nama file
$file_type = $_FILES['foto']['type']; //type file
$file_size = $_FILES['foto']['size']; //ukuran file dalam byte
$tmp_name = $_FILES['foto']['tmp_name']; //path tempat file tersimpan
Script diatas digunakan untuk
mengambil atribut yang dibawa oleh form yaitu nama file, tipe file, ukuran
file, dan alamat asal file. Sementara script addslashes diatas digunakan untuk
mengatasi jika ada tanda petik ( ‘ ) yang bisa menyebabkan query error.
$imgData = addslashes(file_get_contents($tmp_name)); //mengambil kode binary
dari path file
Baris kode diatas digunakan untuk
mengambil kode binary yang akan dicopy kedalam database. Jika anda ingin
melihat bagaimana kode binary tersebut. Cukup tambahkan echo didepan variabel
$imgData.
$ukuranFoto = getimagesize($tmp_name);
$ukuranFoto2 =
addslashes($ukuranFoto[3]); //mengambil ukuran file
foto
//lakukan insert
Ukuran foto berupa panjang dan lebar
dapat diperoleh dengan menggunakan fungsi seperti diatas dan mendapatkan output
width=”x” height=”y”.
4. Show.php
<?php
include("config.php");
//mengambil nilai id yang melakukan request
$id=$_GET['image_id'];
//lakukan query
$sql="SELECT * from image where id='$id'";
$query=mysql_query($sql) or die(mysql_error());
while($result=mysql_fetch_array($query)){
header("Content-type:".$result['type']);
header('Content-Disposition: inline; filename="'.$result['name'].'"');
echo $result['image'];
}
?>
Pada script diatas $id mendapatkan
nilai dari file yang memanggilnya untuk mengambil data gambar. Lalu dilakukan
pencarian gambar berdasarkan id yang diminta kemudian dikembalikan lagi data gambar
tersebut kepada file peminta.
5. getImage.php
<html>
<head>
<title> Get Image</title>
<style type='text/css'>
body{text-align:
center;}
img{width: 300px;height:
auto;border: none;}
</style>
<head>
<body>
<?php
/*
getImage.php
digunakan untuk
menampilkan gambar berdasarkan id terpilih
*/
$idImage = "27";
echo" Gambar dengan ID
: $idImage <br/><img
src='show.php?image_id=$idImage' />";
?>
</body>
</html>
File diatas diggunakan untuk menampilkan
gambar berdasarkan id yang telah dicari, misalkan gambar dengan id 27.
Praktik :
Index.php |
getImage.php |
sekarang
kita sudah bisa melakukan proses upload file gambar untuk pengembangan upload
file – file yang lain bisa anda kreasikan sendiri. Dan semoga artikel ini bisa
bermanfaat untuk kita semua. Terimakasih telah membaca..
*silakan
copy kalau ingin memperluas informasi ini, dengan catatan tambahkan alamat
sumber, jika teman – teman memiliki saran yang membangun kedepanya, sangat
penulis harapkan.
terima
kasih
Ikhwan
Anshori
Anda baru saja membaca artikel yang berkategori Function in PHP /
HTML /
pendidikan /
PHP /
Programming /
Teknik Komputer Jaringan /
XAMP
dengan judul "PHP. Upload File Tipe BLOB dan Penerapan". Anda bisa bookmark halaman ini dengan URL https://3goldenbooks.blogspot.com/2013/10/php-upload-file-tipe-blob-dan-penerapan.html.
0 komentar
Posting Komentar