Dalam tutorial PHP kali ini kita akan mencar ilmu untuk menciptakan halaman upload gambar dengan nilai data gambar yang tersimpan di database dalam kondisi terenkripsi oleh base64, dan ini akan daripada nilai data gambar tanpa enkripsi. Maksud dari enkripsi base64 disini yakni bahwa nantinya data gambar akan disimpan di database dalam bentuk enkripsi begitupun nantinya saat dipanggil akan dalam bentuk enkripsi.
Secara desain panduan ini sama dengan tutorial sebelumnya perihal : Upload, Tampil dan Delete Gambar di PHP Part II tetapi kali ini dengan aksesori enkripsi base64.
Baca juga :
Dalam beberapa masalah aneka macam aplikasi yang mengenkripsi letak dimana file gambar di upload, secara sederhananya ini bermaksud semoga path kawasan menyimpan gambar tidak dikenali, dan mungkin ada tujuan yang lebih kompleks lagi mirip misal alasan keamanan data.
Untuk gaya penulisan aba-aba kali ini, Saya akan memakai OOP PDO, untuk gaya yang lain secara desain sama saja ialah, dimana pada dasarnya ada sebuah nama gambar yang di submit ke database dengan nilai yang terenkripsi oleh base64
Berikut ini yaitu Tutorial PHP : Upload Gambar dengan Enkripsi Base64
1. Struktur Database
Anda bisa menggunakan struktur pola databse misal mirip berikut ini
2. Koneksi ke Database
Buat suatu koneksi ke database misal mirip berikut ini :
file db.php
koneksi= new PDO("mysql:host=$this->host; dbname=$this->db",$this->user, $this->pass); $this->koneksi->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); catch(PDOException $e) echo $e->getMessage(); return $this->koneksi; ?> 3. Membuat Fungsi Upload
Seperti desain OOP PDO pada umumnya, praktik terbaik berdasarkan aku adalah membuat sebuah arahan yang terpisah untuk operasi utama baik submit ke db atau misal untuk upload gambar, pastinya hal ini bertujuan biar aba-aba lebih mudah di maintenance
file class.upload.php
koneksi->prepare($sql); $stmt->bindParam(":name",$name); $stmt->bindParam(":image",$base); $stmt->execute(); return true; catch(PDOException $e) echo $e->getMessage(); return false; public function imageFetch() try $sql="SELECT * FROM foto"; $stmt=$this->koneksi->query($sql); return $stmt; catch(PDOException $e) echo $e->getMessage(); public function getImage1($data) $this->file_name=$_FILES[$data]['name']; $this->file_dir=$_FILES[$data]['tmp_name']; $this->file_size=$_FILES[$data]['size']; $this->file_extension=strtolower(pathinfo($this->file_name, PATHINFO_EXTENSION)); $this->file_valid=array('jpg','jpeg','png'); $this->file_destinasi='image/'; $this->file_item=rand(100, 10000).".".$this->file_extension; public function getUpload($file_name, $file_destinasi, $file_item) if(move_uploaded_file($file_name, $file_destinasi.$file_item)): return true; else: return false; endif; public function uploadBase64($data) //method 1 $this->file_name=$_FILES[$data]['name']; $this->file_tmp=$_FILES[$data]['tmp_name']; $this->file_size=$_FILES[$data]['size']; $this->file_extension=strtolower(pathinfo($this->file_name, PATHINFO_EXTENSION)); $this->file_valid=array('jpg','jpeg','png'); $this->file_dir="image/"; $this->file_target=$this->file_dir.$this->file_name; if(in_array($this->file_extension, $this->file_valid)): $this->image64=base64_encode(file_get_contents($this->file_tmp)); $this->image="data::image/".$this->file_extension.";base64,".$this->image64; if(move_uploaded_file($this->file_tmp, $this->file_target)): if($this->insertImage($this->file_name, $this->image)): return true; else: return false; endif; endif; endif; public function getImage2($data) # Get information $this->file_name=$_FILES[$data]['name']; $this->file_tmp=$_FILES[$data]['tmp_name']; $this->file_size=$_FILES[$data]['size']; # get ekteksion $this->file_extension=strtolower(pathinfo($this->file_name, PATHINFO_EXTENSION)); # get file valid $this->file_valid=array('jpg','jpeg','png'); #target upload $this->file_dir="image/"; # upload with target dir and name of file $this->file_target=$this->file_dir.$this->file_name; # randon name image store to database if you wanna $this->file_item=rand(100,100000).".".$this->file_extension; # get encode to base 64 $this->image64=base64_encode(file_get_contents($this->file_tmp)); # store to database with encode data $this->image="data::image/".$this->file_extension.";base64,".$this->image64; public function fileExtension($extension, $valid) if(in_array($extension, $valid)) return true; else return false; public function fileSize($size) if($size>300000) return true; else return false; public function getError($data) if(count($data)>0) foreach ($data as $err) echo $err; ?> 4. Pengujian
Terkahir yaitu tahap pengujian, Anda mampu menciptakan suatu file dengan nama upload.php mirip berikut ini :
file upload.php
getImage2('image'); if(!$obj->fileExtension($obj->file_extension, $obj->file_valid)): array_push($error, "Maaf ektensi file salah"); elseif($obj->fileSize($obj->file_size)): array_push($error,"Maaf file terlalu besar"); endif; /* With no rename new image if(count($error)==0): if(move_uploaded_file($obj->file_tmp, $obj->file_target)): if($obj->insertImage($obj->file_name, $obj->image)): echo "Gambar berhasil di upload"; else: echo "Gambar gagal di upload"; endif; else: echo "Gagal mengunggah gambar"; endif; endif; */ if(count($error)==0): if(move_uploaded_file($obj->file_tmp,$obj->file_dir.$obj->file_item)): if($obj->insertImage($obj->file_item, $obj->image)): echo "Gambar berhasil di upload"; else: echo "Gambar gagal di upload"; endif; else: echo "Gagal mengunggah gambar"; endif; endif; $obj->getError($error); ?> Upload NO FOTO DB FOTO BASE64 imageFetch(); while($row=$data->fetch(PDO::FETCH_ASSOC)) ?> 

closeCursor();?>
Untuk metodenya sendiri sebenernya Anda bisa melaksanakan improvisasi sebab yang mirip saya bilang bahwa pada dasarnya ada suatu nama gambar yang di submit ke database dengan nilai yang terenkripsi oleh base64
[ Download Code ]
EmoticonEmoticon