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