摘要:圖片存儲的方式為存儲在虛擬目錄下并返回虛擬目錄的路徑。如果是將開發的包直接部署在服務器中,則參考配置虛擬目錄。
序言:項目環境
本次簡單的demo是建立在springmvc框架上的,部署環境為tomcat,前段使用的bootstrap+jquery_file_upload組件。圖片存儲的方式為存儲在虛擬目錄下并返回虛擬目錄的路徑。建議先搭配好springmvc環境再繼續參考本博客。沒有搭配好環境的可以參考這篇博客
圖片存儲方式在給出上傳圖片的代碼之前,先講解一下服務器接收圖片上傳的思路。服務器端保存圖片一般有兩種思路。
將圖片以blob的格式存儲在數據庫中,僅適用于圖片較小的場景
將圖片存儲在服務器的目錄下,并在數據庫中存儲圖片路徑和訪問URL,缺點是可能會造成服務器性能的下降
將圖片存儲在非服務器目錄的任意路徑下,在服務器中配置虛擬目錄,通過虛擬目錄訪問圖片目錄下的圖片
在這里我將主要講一下如何實現第三種圖片存儲。
在開發環境中,可以直接使用Intellij來配置tomcat虛擬目錄。因為Intellij管理下的tomcat實際上是一個tomcat虛擬映像,所以Intellij中的配置將不會影響實際tomcat中的配置。所以如果是在開發測試的過程中直接使用Intellij部署項目,請參考Intellij中配置虛擬目錄。如果是將開發的war包直接部署在服務器中,則參考tomcat配置虛擬目錄。
進入tomcat配置管理頁面,點擊deployment標簽,然后點擊左下角的加號選擇‘external source’,并添加相應的虛擬目錄所在的真實路徑。最后在Application context中配置虛擬目錄的訪問路徑。
在tomcat中配置虛擬目錄的方法有多種,詳細介紹可以參考這兩篇博客
http://www.cnblogs.com/love54...
https://my.oschina.net/liangz...
在這里 我想要介紹的方法是,在Catalina中配置多帶帶的虛擬目錄。
找到/TOMCAT_HOME/conf/Catalina/localhost文件夾,在該文件夾下新建一個xml文件,xml文件的文件名就是虛擬目錄對應的訪問路徑名,如果需要多級目錄,則用#分割開來,例如psm#pc.xml對應的訪問路徑就是/psm/pic。在該xml文件中配置虛擬目錄,語法如下
圖片上傳和接收
reloadale是說如果其中發生變化,是否重新加載。在結束配置后,無需重啟服務器就可以直接用該路徑訪問虛擬目錄。
在前端,使用bootstrap和juery_file_upload插件進行圖片上傳,簡單的html頁面如下
...
controller接收上傳文件的請求,在這里可以參考這篇博客
java存儲文件的代碼如下,該方法將圖片的字節流轉換為文件并存儲在相應的圖片路徑下,也就是我們之前配置的虛擬目錄之下。
import java.io.File; import java.io.FileNotFoundException; import java.io.FileOutputStream; import java.io.IOException; import java.util.Date; /** * Created by rale on 5/29/17. * 將圖片存儲至本地 */ public class FileUtil { public static void save(byte[] bytes, String fileName, String path) throws IOException { createDirectory(path); FileOutputStream os = new FileOutputStream(path + fileName); os.write(bytes); os.close(); } private static boolean isExistPath(String path) { File file = new File(path); if (file.exists()) {//判斷文件目錄的存在 return true; }else{ return false; } } private static void createDirectory(String path){ if(!isExistPath(path)){ File file=new File(path); file.mkdirs(); } } }
想要了解更多開發技術,面試教程以及互聯網公司內推,歡迎關注我的微信公眾號!將會不定期的發放福利哦~
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/67132.html
摘要:啟動后會連接到告知自己的信息,形成映射關聯,并采用心跳機制保持狀態。存儲節點負責文件的存儲,可以集群部署。一個卷組內之間相互通信,文件進行同步,保證卷內完全一致,所以一個卷的容量以最小的服務器為準。 簡介 FastDFS是一個輕量級分布式文件系統??梢詫ξ募M行管理,功能包括:文件存儲、文件同步、文件訪問(文件上傳、文件下載)等,而且可以集群部署,有高可用保障。相應的競品有Ceph、T...
摘要:啟動后會連接到告知自己的信息,形成映射關聯,并采用心跳機制保持狀態。存儲節點負責文件的存儲,可以集群部署。一個卷組內之間相互通信,文件進行同步,保證卷內完全一致,所以一個卷的容量以最小的服務器為準。 簡介 FastDFS是一個輕量級分布式文件系統??梢詫ξ募M行管理,功能包括:文件存儲、文件同步、文件訪問(文件上傳、文件下載)等,而且可以集群部署,有高可用保障。相應的競品有Ceph、T...
摘要:那我們就不用在每一個方法通過將數據傳到頁面。還能夠配置該參數是否是必須的。方法的返回值有種重定向轉發內部就是將數據綁定到域對象中的。注解能夠將數據綁定到中也就是中,如果經常需要綁定到中的數據,抽取成方法來使用這個注解還是不錯的。 前言 本文主要講解的知識點如下: 參數綁定 數據回顯 文件上傳 參數綁定 我們在Controller使用方法參數接收值,就是把web端的值給接收到Cont...
摘要:我們可以來看看數據庫這個字段就是判斷我們的這條數據是否是有效的,表示這條數據是有效的,表示這條數據是無效的。 ? 技術棧 后端 Java 8開發框架:SpringB...
閱讀 1206·2019-08-30 15:55
閱讀 954·2019-08-30 15:55
閱讀 2149·2019-08-30 15:44
閱讀 2879·2019-08-29 14:17
閱讀 1129·2019-08-29 12:45
閱讀 3301·2019-08-26 10:48
閱讀 3132·2019-08-23 18:18
閱讀 2599·2019-08-23 16:47