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