怎么把圖片轉(zhuǎn)化為字節(jié)流存起來,不用擔(dān)心文件存儲圖片占用空間的問題
我看大家好像都沒有好好回答這個問題,我曾經(jīng)作為初學(xué)者的時候也有這個疑惑,我來做一下回答。
首先,數(shù)據(jù)庫千萬別存圖片,數(shù)據(jù)庫存儲數(shù)據(jù)的字段設(shè)置得太大的話,數(shù)據(jù)庫數(shù)據(jù)查詢會非常慢。
另外,圖片數(shù)據(jù),你可以直接用PHP的file_get_contents就能獲取到圖片信息了,但是你要把圖片放回去就需要用到file_put_contents,另外放回去的話你肯定要命名一下圖片名稱,你在取圖片的時候還要存一大堆圖片相關(guān)信息,我覺得的話,沒必要這么操作。
當(dāng)然對于圖片也有base64_encode進(jìn)行base64轉(zhuǎn)換,實(shí)際上我可以告訴你,進(jìn)行轉(zhuǎn)換后圖片存儲空間將會更大。
說了以上幾點(diǎn),我來說一下我們通常是基于什么樣的考慮來存儲圖片的,通常我們會把圖片上傳到一個路徑,比如/var/www/statics/test.jpg,我這里展示的是絕對路徑,通常來說我們用的是相對路徑或者是把圖片上傳到云服務(wù)器上,如果圖片上傳到的是云服務(wù)器上的話可能得到的圖片就是https://img.segmentfault.com/1.jpg這樣的形式。
也就是說,我們數(shù)據(jù)庫存的是圖片的路徑,不管是網(wǎng)絡(luò)路徑還是絕對路徑還是相對路徑,只要我們從書庫把圖片路徑取出來并且能根據(jù)圖片存儲的路徑找到圖片就可以了,而且路徑數(shù)據(jù)本身就很小,通過路徑取到原圖片,根本不需要做過多考慮,所以沒人會把圖片數(shù)據(jù)轉(zhuǎn)換成字節(jié)存到數(shù)據(jù)庫的。
另外我也看到你說不用考慮圖片占用空間過大的問題,但是我可以在這里明確告訴你,我們寫程序一方面考慮便捷性,快速實(shí)現(xiàn)某種功能,同時我們還要考慮性能問題,我們做程序的最終目的是服務(wù)用戶的,不管這個用戶是我們自己還是能給我們帶來收益的真實(shí)用戶。所以來說,程序能實(shí)現(xiàn)了之后,還要考慮一個問題就是性能問題。
所以,我們通常來說,希望數(shù)據(jù)庫中存儲的數(shù)據(jù)越小越好。
北大青鳥APTECH成立于1999年。依托北京大學(xué)優(yōu)質(zhì)雄厚的教育資源和背景,秉承“教育改變生活”的發(fā)展理念,致力于培養(yǎng)中國IT技能型緊缺人才,是大數(shù)據(jù)專業(yè)的國家
達(dá)內(nèi)教育集團(tuán)成立于2002年,是一家由留學(xué)海歸創(chuàng)辦的高端職業(yè)教育培訓(xùn)機(jī)構(gòu),是中國一站式人才培養(yǎng)平臺、一站式人才輸送平臺。2014年4月3日在美國成功上市,融資1
北大課工場是北京大學(xué)校辦產(chǎn)業(yè)為響應(yīng)國家深化產(chǎn)教融合/校企合作的政策,積極推進(jìn)“中國制造2025”,實(shí)現(xiàn)中華民族偉大復(fù)興的升級產(chǎn)業(yè)鏈。利用北京大學(xué)優(yōu)質(zhì)教育資源及背
博為峰,中國職業(yè)人才培訓(xùn)領(lǐng)域的先行者
曾工作于聯(lián)想擔(dān)任系統(tǒng)開發(fā)工程師,曾在博彥科技股份有限公司擔(dān)任項(xiàng)目經(jīng)理從事移動互聯(lián)網(wǎng)管理及研發(fā)工作,曾創(chuàng)辦藍(lán)懿科技有限責(zé)任公司從事總經(jīng)理職務(wù)負(fù)責(zé)iOS教學(xué)及管理工作。
浪潮集團(tuán)項(xiàng)目經(jīng)理。精通Java與.NET 技術(shù), 熟練的跨平臺面向?qū)ο箝_發(fā)經(jīng)驗(yàn),技術(shù)功底深厚。 授課風(fēng)格 授課風(fēng)格清新自然、條理清晰、主次分明、重點(diǎn)難點(diǎn)突出、引人入勝。
精通HTML5和CSS3;Javascript及主流js庫,具有快速界面開發(fā)的能力,對瀏覽器兼容性、前端性能優(yōu)化等有深入理解。精通網(wǎng)頁制作和網(wǎng)頁游戲開發(fā)。
具有10 年的Java 企業(yè)應(yīng)用開發(fā)經(jīng)驗(yàn)。曾經(jīng)歷任德國Software AG 技術(shù)顧問,美國Dachieve 系統(tǒng)架構(gòu)師,美國AngelEngineers Inc. 系統(tǒng)架構(gòu)師。