幾乎全部的開發者都作過圖片上傳,這個功能幾乎應用於全部的系統。可是大部分人都是用別人封裝好的,圖片上傳工具類或者上傳服務,本身沒有深刻研究過具體實現。web
目前常見的圖片服務方案:數據庫
1.上傳到雲盤中,如:7牛,阿里OSS…服務器
須要按照服務提供方提供的API定製化開發上傳功能,而後經過網絡URL訪問,網絡文件服務須要付費。網絡
2.直接上傳到當前項目的webapp下的某目錄(EovaV1.5以前就是這樣實現的)app
項目從新部署,須要備份圖片,不然就會被自動清理。部署完項目,圖片就訪問不到了。dom
3.上傳到本機的指定目錄中,並將該目錄發佈爲靜態服務器(EovaV1.5的實現方式)webapp
須要部署兩個服務,一個Web服務器,一個靜態服務器,直接訪問靜態服務器獲取圖片。
本方案是不少企業採用的方案,有兩個好處:工具
重啓部署以後,圖片不會被清除spa
動靜分離,減輕Web服務壓力.net
下面咱們先看一下如何用Tomcat發佈靜態服務:
1.下載Tomcat
2.修改Tomcat /conf/server.xml 在Host節點中加入Context,參考下面
<Host name="localhost" appBase="webapps" unpackWARs="true" autoDeploy="true">
<Context path="/" docBase="D:\eova\static"/>
</Host>
3.啓動圖片服務器,假設HTTP端口號爲18080
Eova圖片服務配置:
#圖片服務域名(上面搭建的靜態服務器的IP+端口)
domain_img = http://127.0.0.1:18080
#靜態根目錄(上面搭建的靜態服務器docBase對應的目錄)
static_root = D:/eova/static
首先將元字段設置爲圖片框
而後元字段文件目錄配置:須要手工修改數據庫中的JSON配置(表:eova_field 字段:config)
{"filedir":"/image/product"}
So,通過如上配置,是爲了下面兩項
圖片上傳保存目錄:(假設傳的圖片名爲001.jpg)
D:/eova/static/image/product/001.jpg
圖片服務實際訪問URL: