新聞中心
存儲(chǔ)圖片到MySQL數(shù)據(jù)庫(kù),教你如何實(shí)現(xiàn)

創(chuàng)新互聯(lián)是一家專業(yè)的成都網(wǎng)站建設(shè)公司,我們專注成都網(wǎng)站設(shè)計(jì)、做網(wǎng)站、網(wǎng)絡(luò)營(yíng)銷、企業(yè)網(wǎng)站建設(shè),友情鏈接,一元廣告為企業(yè)客戶提供一站式建站解決方案,能帶給客戶新的互聯(lián)網(wǎng)理念。從網(wǎng)站結(jié)構(gòu)的規(guī)劃UI設(shè)計(jì)到用戶體驗(yàn)提高,創(chuàng)新互聯(lián)力求做到盡善盡美。
隨著互聯(lián)網(wǎng)的發(fā)展,我們?nèi)粘I钪性絹?lái)越離不開(kāi)圖片。圖片可以是美食、旅游、明星照片等等,也可以是軟件、App中的各種圖標(biāo)和界面,圖片的重要性不言而喻。在Web開(kāi)發(fā)中,經(jīng)常需要將圖片存入數(shù)據(jù)庫(kù)并進(jìn)行管理。本文將介紹如何將圖片存儲(chǔ)在MySQL數(shù)據(jù)庫(kù)中,并實(shí)現(xiàn)圖片的添加、更新和刪除功能。
一、存儲(chǔ)圖片
1. 前置條件:數(shù)據(jù)庫(kù)與表結(jié)構(gòu)已創(chuàng)建
在實(shí)現(xiàn)存儲(chǔ)圖片之前,我們需要在MySQL數(shù)據(jù)庫(kù)中創(chuàng)建一張表來(lái)存儲(chǔ)圖片。這里以創(chuàng)建一個(gè)名為“images”的表為例。表中需要包含以下字段:
“`sql
CREATE TABLE `images` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`name` varchar(255) NOT NULL,
`content_type` varchar(255) NOT NULL,
`data` longblob NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
“`
字段解釋:
id:主鍵,自增長(zhǎng)
name:文件名,不可為空
content_type:文件類型,不可為空
data:文件數(shù)據(jù),不可為空
2. 實(shí)現(xiàn)存儲(chǔ)圖片功能
我們使用Python的MySQLdb庫(kù)來(lái)操作MySQL數(shù)據(jù)庫(kù),實(shí)現(xiàn)存儲(chǔ)圖片功能。代碼如下:
“`python
import MySQLdb
import os
def save_image_to_db(file_path):
# 獲取文件名和文件類型
name, content_type = os.path.splitext(os.path.basename(file_path))
# 讀取文件數(shù)據(jù)
with open(file_path, ‘rb’) as f:
data = f.read()
# 連接數(shù)據(jù)庫(kù)
db = MySQLdb.connect(
host=’localhost’,
user=’root’,
password=’123456′,
db=’test_db’,
charset=’utf8′
)
# 執(zhí)行插入操作
cursor = db.cursor()
cursor.execute(“””
INSERT INTO images (name, content_type, data)
VALUES (%s, %s, %s)
“””, (name, content_type, data))
db.commit()
# 關(guān)閉數(shù)據(jù)庫(kù)連接
cursor.close()
db.close()
if __name__ == ‘__mn__’:
save_image_to_db(‘example.jpg’)
“`
我們首先通過(guò)os.path.splitext和os.path.basename方法獲取了圖片的文件名和類型,然后使用with打開(kāi)文件,并使用rb模式讀取文件數(shù)據(jù)。接著,我們使用MySQLdb庫(kù)連接數(shù)據(jù)庫(kù),并執(zhí)行INSERT語(yǔ)句將文件名、文件類型和文件數(shù)據(jù)插入到表中。我們需要在程序的主函數(shù)中調(diào)用save_image_to_db方法,并將要存儲(chǔ)的圖片路徑作為參數(shù)傳入。
二、更新圖片
當(dāng)我們需要更新圖片時(shí),只需要根據(jù)圖片的id將對(duì)應(yīng)的數(shù)據(jù)替換即可。更新圖片的代碼如下:
“`python
import MySQLdb
import os
def update_image(id, file_path):
# 獲取文件名和文件類型
name, content_type = os.path.splitext(os.path.basename(file_path))
# 讀取文件數(shù)據(jù)
with open(file_path, ‘rb’) as f:
data = f.read()
# 連接數(shù)據(jù)庫(kù)
db = MySQLdb.connect(
host=’localhost’,
user=’root’,
password=’123456′,
db=’test_db’,
charset=’utf8′
)
# 執(zhí)行更新操作
cursor = db.cursor()
cursor.execute(“””
UPDATE images SET name=%s, content_type=%s, data=%s
WHERE id=%s
“””, (name, content_type, data, id))
db.commit()
# 關(guān)閉數(shù)據(jù)庫(kù)連接
cursor.close()
db.close()
if __name__ == ‘__mn__’:
update_image(1, ‘example.jpg’)
“`
我們需要傳入圖片的id和新的圖片路徑,然后使用UPDATE語(yǔ)句將對(duì)應(yīng)的文件名、文件類型和文件數(shù)據(jù)更新到數(shù)據(jù)庫(kù)中。
三、刪除圖片
當(dāng)我們需要?jiǎng)h除圖片時(shí),只需要根據(jù)圖片的id將對(duì)應(yīng)的數(shù)據(jù)從數(shù)據(jù)庫(kù)中刪除即可。刪除圖片的代碼如下:
“`python
import MySQLdb
def delete_image(id):
# 連接數(shù)據(jù)庫(kù)
db = MySQLdb.connect(
host=’localhost’,
user=’root’,
password=’123456′,
db=’test_db’,
charset=’utf8′
)
# 執(zhí)行刪除操作
cursor = db.cursor()
cursor.execute(“””
DELETE FROM images WHERE id=%s
“””, (id,))
db.commit()
# 關(guān)閉數(shù)據(jù)庫(kù)連接
cursor.close()
db.close()
if __name__ == ‘__mn__’:
delete_image(1)
“`
我們只需要傳入圖片的id,然后使用DELETE語(yǔ)句將對(duì)應(yīng)的數(shù)據(jù)從數(shù)據(jù)庫(kù)中刪除即可。
本文介紹了如何將圖片存儲(chǔ)在MySQL數(shù)據(jù)庫(kù)中,并實(shí)現(xiàn)圖片的添加、更新和刪除功能。對(duì)于需要管理海量圖片的Web應(yīng)用來(lái)說(shuō),使用MySQL數(shù)據(jù)庫(kù)對(duì)圖片進(jìn)行管理是一個(gè)比較好的選擇。
相關(guān)問(wèn)題拓展閱讀:
- 如何將照片信息存入MySQL?
- php中,如何將圖片保存到mysql中?
如何將照片信息存入MySQL?
一般都是在數(shù)據(jù)庫(kù)中存儲(chǔ)照片文件的路徑,不會(huì)直接把照片文件存儲(chǔ)到數(shù)據(jù)庫(kù)中。
php中,如何將圖片保存到mysql中?
剛剛寫(xiě)好的,就是PHP保存圖片到MYSQL數(shù)據(jù)庫(kù)
文件描述:
請(qǐng)選擇上傳文件:
筆者是在ubuntu環(huán)境下測(cè)試的:首先創(chuàng)建一個(gè)查詢語(yǔ)句的文件
如query.sql(名字你自己取),內(nèi)容大致如下:use
datebase_name;
//不解釋了吧
select
xxx
from
table
where
where-condition….;
//就是一個(gè)你需要查詢的語(yǔ)句保存好,現(xiàn)在開(kāi)始操作:#mysql
-h
服務(wù)器ip地址
-u
用戶名
-p密碼
-p
端口
輸出的文件名demo:
mysql
-h
127.0.0.1
-u
root
-p
1234
-p
3300
/home/michael/test.txt好了,現(xiàn)在你可以在對(duì)應(yīng)的目錄中找到你想要的文件了。
怎么把圖片存入mysql數(shù)據(jù)庫(kù)的介紹就聊到這里吧,感謝你花時(shí)間閱讀本站內(nèi)容,更多關(guān)于怎么把圖片存入mysql數(shù)據(jù)庫(kù),存儲(chǔ)圖片到mysql數(shù)據(jù)庫(kù),教你如何實(shí)現(xiàn),如何將照片信息存入MySQL?,php中,如何將圖片保存到mysql中?的信息別忘了在本站進(jìn)行查找喔。
香港服務(wù)器選創(chuàng)新互聯(lián),2H2G首月10元開(kāi)通。
創(chuàng)新互聯(lián)(www.cdcxhl.com)互聯(lián)網(wǎng)服務(wù)提供商,擁有超過(guò)10年的服務(wù)器租用、服務(wù)器托管、云服務(wù)器、虛擬主機(jī)、網(wǎng)站系統(tǒng)開(kāi)發(fā)經(jīng)驗(yàn)。專業(yè)提供云主機(jī)、虛擬主機(jī)、域名注冊(cè)、VPS主機(jī)、云服務(wù)器、香港云服務(wù)器、免備案服務(wù)器等。
網(wǎng)頁(yè)題目:存儲(chǔ)圖片到mysql數(shù)據(jù)庫(kù),教你如何實(shí)現(xiàn)(怎么把圖片存入mysql數(shù)據(jù)庫(kù))
本文鏈接:http://m.fisionsoft.com.cn/article/dpehgoo.html


咨詢
建站咨詢
