一、Mysql怎么把圖片轉換的base64以字符串的類型存入數據庫
MySQL沒有內置功能可以實現此功能,但可以使用以下步驟實現:1. 使用PHP或其他編程語言將圖像轉換成Base64字符串;2. 將Base64字符串存儲在MySQL數據庫中的VARCHAR或TEXT字段中。
下面是一個示例:
python
Copy code
import base64
# 讀取圖片并轉換為 base64 編碼
with open(“image.jpg”, “rb”) as image_file:
encoded_string = base64.b64encode(image_file.read()).decode(‘utf-8’)
# 將 base64 編碼字符串存儲到數據庫中
cursor.execute(“INSERT INTO images (image) VALUES (%s)”, (encoded_string,))
但不建議存儲圖片,音視頻類的真實數據到數據庫內。一般都將這些數據存儲到對象存儲上,然后記錄一些位置信息,使用的時候在應用程序上面寫邏輯獲取。
硬要這么做就是用blob 這種格式直接存圖片二進制更簡單粗暴點
延伸閱讀:
二、在數據庫中存儲圖像的常用方法
在數據庫中存儲圖像的常用方法是在存儲數據之前將圖像轉換為base64數據。這個過程將增加 33% 的大小。或者,可以將圖像直接存儲為?BLOB;例如:
$image = new Imagick(“image.jpg”);
$data = $image->getImageBlob();
$data = $mysqli->real_escape_string($data);
$mysqli->query(“INSERT INTO images (data) VALUES (‘$data’)”);
然后用
顯示圖片
使用后一種方法,我們節省了 1/3 的存儲空間。為什么在 MySQL 數據庫中將圖像存儲為?base64?更常見?
關于將圖像存儲在數據庫中的優缺點有很多爭論,大多數人認為這不是一種實用的方法。無論如何,在這里我假設我們將圖像存儲在數據庫中,并討論這樣做的優異方法。