Senin, 23 Maret 2020

Tutorial Php : Upload Gambar Dengan Enkripsi Base64


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

Dalam tutorial PHP kali ini kita akan belajar untuk membuat halaman upload gambar dengan n Tutorial PHP : Upload Gambar dengan Enkripsi Base64



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   
imageFetch(); while($row=$data->fetch(PDO::FETCH_ASSOC)) ?> closeCursor();?>
NO FOTO DB FOTO BASE64

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





Sumber https://root93.blogspot.com


EmoticonEmoticon