Selamat datang di blog mari belajar coding. Pada tutorial kali ini kita akan belajar membuat sebuah form input file atau gambar menggunakan PHP. Ada beberapa cara untuk upload sebuah file, kita bisa menggunakan fungsi PHP untuk memindahkan file ke server atau langsung menyimpan gambar di database.
Upload Gambar dengan PHP dan MySQL
1. Buat database untuk menyimpan gambar.
CREATE DATABASE penjualan;
USE penjualan;
CREATE TABLE `produk` (
`IdProduk` int(11) PRIMARY KEY AUTO_INCREMENT,
`NamaProduk` varchar(255),
`Gambar` varchar(255),
`File_Gambar` longblob
);
2. Buat folder bernama upload_gambar di directory xampp/htdocs.
3. Buat fungsi koneksi database.
3. Buat fungsi koneksi database.
<?php
mysql_connect("localhost","root","");
mysql_select_db("penjualan");
?>
4. Selanjutnya buat form untuk upload gambar dan menyimpannya kedalam database. Karena kita menggunakan input tipe file, tambahkan attribut enctype di tag form. Lihat baris yang di beri highlight.
<table>
<form method="POST" enctype='multipart/form-data'>
<tr>
<td>Nama Produk</td>
<td><input type="text" name="nama" id="nama"></td>
</tr>
<tr>
<td>Gambar</td>
<td><input type="file" name="filegambar" id="filegambar"></td>
</tr>
<tr>
<td></td>
<td><input type="submit" name="simpan" value="Simpan"></td>
</tr>
</form>
</table>
5. Buat aksi untuk menyimpan data ke database.
<?php
if (isset($_POST['simpan'])) {
//buat folder bernama gambar
$tempdir = "gambar/";
if (!file_exists($tempdir))
mkdir($tempdir,0755);
//gambar akan di simpan di folder gambar
$target_path = $tempdir . basename($_FILES['filegambar']['name']);
//nama gambar
$nama_gambar=$_FILES['filegambar']['name'];
//ukuran gambar
$ukuran_gambar = $_FILES['filegambar']['size'];
$fileinfo = @getimagesize($_FILES["filegambar"]["tmp_name"]);
//lebar gambar
$width = $fileinfo[0];
//tinggi gambar
$height = $fileinfo[1];
if($ukuran_gambar > 81920){
echo 'Ukuran gambar melebihi 80kb';
}else if ($width > "480" || $height > "640") {
echo 'Ukuran gambar harus 480x640';
}else{
if (move_uploaded_file($_FILES['filegambar']['tmp_name'], $target_path)) {
$sql=mysql_query("INSERT INTO produk(NamaProduk,Gambar) VALUES('".$_POST['nama']."', '".$nama_gambar."')");
echo 'Simpan data berhasil';
} else {
echo 'Simpan data gagal';
}
}
}
?>
6. Terakhir buat tampilan untuk menampilkan file yang telah di simpan.
<table border="1">
<thead>
<tr>
<th>No</th>
<th>Nama Produk</th>
<th>Gambar</th>
</tr>
</thead>
<tbody>
<?php
$no=1;
$sql=mysql_query("SELECT * FROM produk order by IdProduk desc");
while ($data=mysql_fetch_array($sql)) {
?>
<tr>
<td><?=$no++?></td>
<td><?=$data['NamaProduk']?></td>
<td><img src="gambar/<?=$data['Gambar']?>" width="100"></td>
</tr>
<?php
}
?>
</tbody>
</table>
7. Kode lengkapnya seperti di bawah ini. Simpan dengan nama latihan1.php.
<!DOCTYPE html>
<html>
<head>
<title>maribelajarcoding.com</title>
<?php
mysql_connect("localhost","root","");
mysql_select_db("penjualan");
?>
</head>
<body>
<table>
<form method="POST" enctype='multipart/form-data'>
<tr>
<td>Nama Produk</td>
<td><input type="text" name="nama" id="nama"></td>
</tr>
<tr>
<td>Gambar</td>
<td><input type="file" name="filegambar" id="filegambar"></td>
</tr>
<tr>
<td></td>
<td><input type="submit" name="simpan" value="Simpan"></td>
</tr>
</form>
</table>
<?php
if (isset($_POST['simpan'])) {
//buat folder bernama gambar
$tempdir = "gambar/";
if (!file_exists($tempdir))
mkdir($tempdir,0755);
$target_path = $tempdir . basename($_FILES['filegambar']['name']);
//nama gambar
$nama_gambar=$_FILES['filegambar']['name'];
//ukuran gambar
$ukuran_gambar = $_FILES['filegambar']['size'];
$fileinfo = @getimagesize($_FILES["filegambar"]["tmp_name"]);
//lebar gambar
$width = $fileinfo[0];
//tinggi gambar
$height = $fileinfo[1];
if($ukuran_gambar > 81920){
echo 'Ukuran gambar melebihi 80kb';
}else if ($width > "480" || $height > "640") {
echo 'Ukuran gambar harus 480x640';
}else{
if (move_uploaded_file($_FILES['filegambar']['tmp_name'], $target_path)) {
$sql=mysql_query("INSERT INTO produk(NamaProduk,Gambar) VALUES('".$_POST['nama']."', '".$nama_gambar."')");
echo 'Simpan data berhasil';
} else {
echo 'Simpan data gagal';
}
}
}
?>
<br>
<table border="1">
<thead>
<tr>
<th>No</th>
<th>Nama Produk</th>
<th>Gambar</th>
</tr>
</thead>
<tbody>
<?php
$no=1;
$sql=mysql_query("SELECT * FROM produk order by IdProduk desc");
while ($data=mysql_fetch_array($sql)) {
?>
<tr>
<td><?=$no++?></td>
<td><?=$data['NamaProduk']?></td>
<td><img src="gambar/<?=$data['Gambar']?>" width="100"></td>
</tr>
<?php
}
?>
</tbody>
</table>
</body>
</html>
Keterangan:
Saat kita melakukan aksi simpan, data yang akan di simpan di database hanya nama produk dan nama file gambar, sedangkan file gambar berada pada folder gambar.
Saat kita melakukan aksi simpan, data yang akan di simpan di database hanya nama produk dan nama file gambar, sedangkan file gambar berada pada folder gambar.
Baca juga Upload dan Compress/Resize File Gambar dengan PHP
8. Untuk menyimpan gambar langsung di database kita bisa menggunakan cara seperti di bawah ini. Simpan dengan nama latihan2.php.
<!DOCTYPE html>
<html>
<head>
<title>maribelajarcoding.com</title>
<?php
mysql_connect("localhost","root","");
mysql_select_db("penjualan");
?>
</head>
<body>
<table>
<form method="POST" enctype='multipart/form-data'>
<tr>
<td>Nama Produk</td>
<td><input type="text" name="nama" id="nama"></td>
</tr>
<tr>
<td>Gambar</td>
<td><input type="file" name="filegambar" id="filegambar"></td>
</tr>
<tr>
<td></td>
<td><input type="submit" name="simpan" value="Simpan"></td>
</tr>
</form>
</table>
<?php
if (isset($_POST['simpan'])) {
//nama gambar
$nama_gambar=$_FILES['filegambar']['name'];
//ukuran gambar
$ukuran_gambar = $_FILES['filegambar']['size'];
$fileinfo = @getimagesize($_FILES["filegambar"]["tmp_name"]);
//lebar gambar
$width = $fileinfo[0];
//tinggi gambar
$height = $fileinfo[1];
//file gambar
$file_gambar=addslashes(file_get_contents($_FILES['filegambar']['tmp_name']));
if($ukuran_gambar > 81920){
echo 'Ukuran gambar melebihi 80kb';
}else if ($width > "480" || $height > "640") {
echo 'Ukuran gambar harus 480x640';
}else{
$sql=mysql_query("INSERT INTO produk(NamaProduk,Gambar,File_Gambar) VALUES('".$_POST['nama']."', '".$nama_gambar."','".$file_gambar."')");
if ($sql) {
echo 'Simpan data berhasil';
}else {
echo 'Simpan data gagal';
}
}
}
?>
<br>
<table border="1">
<thead>
<tr>
<th>No</th>
<th>Nama Produk</th>
<th>Gambar</th>
</tr>
</thead>
<tbody>
<?php
$no=1;
$sql=mysql_query("SELECT * FROM produk order by IdProduk desc");
while ($data=mysql_fetch_array($sql)) {
?>
<tr>
<td><?=$no++?></td>
<td><?=$data['NamaProduk']?></td>
<td><img src="data:image/jpeg;base64,<?=base64_encode($data['File_Gambar'] )?>" width="100"></td>
</tr>
<?php
}
?>
</tbody>
</table>
</body>
</html>
Keterangan:
Kekurangan dari menyimpan gambar langsung di database yaitu penyimpanan database akan semakin besar yang menyebabkan pencarian data lebih lambat.
Related search:
Upload gambar dengan PHP dan MySQL
Upload file dengan PHP dan MySQL
Upload image dengan PHP dan MySQL
Kekurangan dari menyimpan gambar langsung di database yaitu penyimpanan database akan semakin besar yang menyebabkan pencarian data lebih lambat.
Related search:
Upload gambar dengan PHP dan MySQL
Upload file dengan PHP dan MySQL
Upload image dengan PHP dan MySQL