iT邦幫忙

2023 iThome 鐵人賽

DAY 15
0

新增資料表

 📌 CREATE TABLE `picture`
 (
 id int AUTO_INCREMENT PRIMARY KEY,
 name varchar(128) not null,
 data LongText not null
 );

數據包最大限制提高

 📌 max_allowed_packet=100M

在 my.ini 裡面做設置

可以用CTRL + F 快速查找

照片加密/顯示

 📌 class picture
 {
     public $path;
     public $b64_img;
     public function put_path($p)
     {
         $this->path = $p;
     }
     public function pic_base64()
     {
         $this->b64_img = chunk_split(base64_encode(file_get_contents($this->path)));
     }
     public function show_pic()
     {
         $val = "<img src=\"data:image/png;base64,";
         $val = $val . $this->b64_img;
         $val = $val . "\">";
         return $val;
     }
 }

將照片轉為BASE64

放入資料庫

 📌 include "pic-b64.php";
 $pic = new picture();
 $pic -> put_path("temp.png");
 $pic -> pic_base64();
 $sql = new sql();
 $sql->config("root","","pic","picture");
 $data=['',$pic->path,$pic->b64_img];
 $sql->put_data($data);
 $sql->add();

temp.png 可以改為要加密的照片

取出照片

 📌 $data=["id","name","data"];
 $sql->put_data($data);
 $arr = $sql->sel();
 $val = "<img src=\"data:image/png;base64,";
 $val = $val . $arr[0]['data'];
 $val = $val . "\">";
 echo  $val;

程式碼收錄:https://github.com/chyhhwen/pic-base64


上一篇
[DAY14]如何製作白名單?
下一篇
[DAY16]如何新增商品?
系列文
從前端到後端,設計出屬於自己的購物網站30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

1 則留言

1
MatthewWangUS
iT邦新手 2 級 ‧ 2023-09-15 17:55:49

相片存DB.通常壞處會大於好處。

小赤 iT邦新手 5 級 ‧ 2023-09-16 09:45:50 檢舉

好處是方便版本控制和分類
但效能和成本會提高
也有數據外洩的風險
確實,壞處會大於好處
這樣看起來,存取路徑會好點
/images/emoticon/emoticon12.gif

我要留言

立即登入留言