Cara upload gambar dengan php dan menyimpan kedalam
database mysql
Ada dua cara
dalam php agar kita bisa upload gambar dan memanggilnya kembali. Cara pertama
dengan menyimpan objek gambarnya kedalam database dan cara
kedua adalah menyimpan objek gambar dalam folder dan menyimpan nama filenya
didalam database mysql.
Masing-masing punya kekurangan dan
kelebihanya diantaranya :
Cara pertama dengan menyimpan objek
gambar dalam database :
Kelebihan : lebih praktis karena proses menyimpan langsung kedalam database
Kekurangan :
Kelebihan : lebih praktis karena proses menyimpan langsung kedalam database
Kekurangan :
- Performa database lebih lambat dan ukuran database tentunya semakin besar
- Sulit untuk membackup fisik gambar karena gambar tersimpan dalam format database
Cara kedua dengan menyimpan objek
gambar dalam folder dan menyimpan nama file dalam mysql :
Kelebihan : proses pembacaan file lebih cepat karena tersimpan dalam folder yang berada di server
Kekurangan : proses agak ribet karna harus mengambil alamat dan nama file terlebih dahulu dalam database dan kemudian mengaksesnya dalam folder
Kelebihan : proses pembacaan file lebih cepat karena tersimpan dalam folder yang berada di server
Kekurangan : proses agak ribet karna harus mengambil alamat dan nama file terlebih dahulu dalam database dan kemudian mengaksesnya dalam folder
Saya pribadi lebih senang dengan cara
kedua karena jika membackup database otomatis lebih kecil dan jika ingin
membackup file gambarnya cukup dengan mengambil foldernya saja. Oleh karena itu
saya
akan membahas dengan cara
kedua.
Langkah pertama kita siapkan
databasenya dulu bisa seperti contoh berikut :
CREATE
TABLE `tb_gambar` (`id` INT NOT
NULL AUTO_INCREMENT PRIMARY
KEY ,
`judul_gambar` VARCHAR( 30 )
NOT NULL ,
`nama_file` VARCHAR( 50 )
NOT NULL
)
ENGINE = MYISAM ;
Silahkan jalankan query diatas dalam
database yang sudah anda buat.
Kemudian kita membuat form
uploadnya, bisa disimpan dalam kirim-gambar.html :
<h2>Contoh
Upload Gambar</h2>
<form
action="upload.php" method="post" enctype="multipart/form-data"
name="FUpload" id="FUpload">
<p>Judul Gambar :
<input name="judul_gambar" type="text"
id="judul_gambar" size="30" maxlength="30" />
</p>
<p>File Gambar :
<input name="nama_file" type="file"
id="nama_file" size="30" />
</p>
<p><input type="submit" name="btnSimpan"
id="btnSimpan" value="Simpan" /></p>
</form>
Jangan lupa form yang anda buat
sudah menggunakan enctype="multipart/form-data". Anda bisa baca artikel saya tentang Cara Membuat form dengan HTML.
Setelah itu kita siapkan lagi sebuah
file PHP dengan nama upload.php dengan kode seperti berikut :
<?php
$namafolder="gambar/";
//tempat menyimpan file
$con=mysql_connect("localhost","namauser","pass")
or die("Gagal");
mysql_select_db("db_latihan")
or die("Gagal");
if
(!empty($_FILES["nama_file"]["tmp_name"]))
{
$jenis_gambar=$_FILES['nama_file']['type'];
$judul_gambar=$_POST['judul_gambar'];
if($jenis_gambar=="image/jpeg" ||
$jenis_gambar=="image/jpg" || $jenis_gambar=="image/gif" ||
$jenis_gambar=="image/x-png")
{
$gambar = $namafolder .
basename($_FILES['nama_file']['name']);
if (move_uploaded_file($_FILES['nama_file']['tmp_name'],
$gambar)) {
echo "Gambar berhasil dikirim
".$gambar;
$sql="insert into table
(judul_gambar,nama_file) values ('$judul_gambar','$gambar')";
$res=mysql_query($sql) or die
(mysql_error());
} else {
echo "Gambar gagal dikirim";
}
} else {
echo "Jenis gambar yang anda kirim salah. Harus .jpg
.gif .png";
}
}
else {
echo "Anda belum memilih gambar";
}
?>
Catatan :
- Folder gambar dibuat satu folder dengan file kirim-gambar.html, upload.php
- Upload diatas hanya menyimpan file jenis jpg, gif, dan png
- Yang disimpan dalam mysql hanya judul gambar, nama folder dan nama file gambar saja
Contoh script lengkap bisa anda download disini
Jika menemui error, mungkin artikel saya tentang Masalah
seputar upload file dengan php
bisa membantu anda.
Bagaimana menampilkan gambar yang
sudah disimpan dalam database mysql?
Silahkan baca artikel Cara menampilkan gambar
dari database mysql dengan php
mau nanya nih om..
BalasHapusklw supaya muncul tulisan jika gambar yang telah diupload sudah ada gmn??
mkasih
Ijin share Gan , cek :
BalasHapushttp://www.arissaryanto.net/2013/04/cara-upload-gambar-ke-sql-dengan-php.html
terima kasih