成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

springmvc 接收上傳圖片并且存儲至本地目錄

SimpleTriangle / 3113人閱讀

摘要:圖片存儲的方式為存儲在虛擬目錄下并返回虛擬目錄的路徑。如果是將開發(fā)的包直接部署在服務(wù)器中,則參考配置虛擬目錄。

序言:項(xiàng)目環(huán)境

本次簡單的demo是建立在springmvc框架上的,部署環(huán)境為tomcat,前段使用的bootstrap+jquery_file_upload組件。圖片存儲的方式為存儲在虛擬目錄下并返回虛擬目錄的路徑。建議先搭配好springmvc環(huán)境再繼續(xù)參考本博客。沒有搭配好環(huán)境的可以參考這篇博客

圖片存儲方式

在給出上傳圖片的代碼之前,先講解一下服務(wù)器接收圖片上傳的思路。服務(wù)器端保存圖片一般有兩種思路。

將圖片以blob的格式存儲在數(shù)據(jù)庫中,僅適用于圖片較小的場景

將圖片存儲在服務(wù)器的目錄下,并在數(shù)據(jù)庫中存儲圖片路徑和訪問URL,缺點(diǎn)是可能會造成服務(wù)器性能的下降

將圖片存儲在非服務(wù)器目錄的任意路徑下,在服務(wù)器中配置虛擬目錄,通過虛擬目錄訪問圖片目錄下的圖片

在這里我將主要講一下如何實(shí)現(xiàn)第三種圖片存儲。
在開發(fā)環(huán)境中,可以直接使用Intellij來配置tomcat虛擬目錄。因?yàn)镮ntellij管理下的tomcat實(shí)際上是一個(gè)tomcat虛擬映像,所以Intellij中的配置將不會影響實(shí)際tomcat中的配置。所以如果是在開發(fā)測試的過程中直接使用Intellij部署項(xiàng)目,請參考Intellij中配置虛擬目錄。如果是將開發(fā)的war包直接部署在服務(wù)器中,則參考tomcat配置虛擬目錄。

Intellij中配置虛擬目錄


進(jìn)入tomcat配置管理頁面,點(diǎn)擊deployment標(biāo)簽,然后點(diǎn)擊左下角的加號選擇‘external source’,并添加相應(yīng)的虛擬目錄所在的真實(shí)路徑。最后在Application context中配置虛擬目錄的訪問路徑。

Tomcat中配置虛擬目錄

在tomcat中配置虛擬目錄的方法有多種,詳細(xì)介紹可以參考這兩篇博客
http://www.cnblogs.com/love54...
https://my.oschina.net/liangz...
在這里 我想要介紹的方法是,在Catalina中配置多帶帶的虛擬目錄。


找到/TOMCAT_HOME/conf/Catalina/localhost文件夾,在該文件夾下新建一個(gè)xml文件,xml文件的文件名就是虛擬目錄對應(yīng)的訪問路徑名,如果需要多級目錄,則用#分割開來,例如psm#pc.xml對應(yīng)的訪問路徑就是/psm/pic。在該xml文件中配置虛擬目錄,語法如下


reloadale是說如果其中發(fā)生變化,是否重新加載。在結(jié)束配置后,無需重啟服務(wù)器就可以直接用該路徑訪問虛擬目錄。
圖片上傳和接收

在前端,使用bootstrap和juery_file_upload插件進(jìn)行圖片上傳,簡單的html頁面如下

    
    
        ...
        

controller接收上傳文件的請求,在這里可以參考這篇博客
java存儲文件的代碼如下,該方法將圖片的字節(jié)流轉(zhuǎn)換為文件并存儲在相應(yīng)的圖片路徑下,也就是我們之前配置的虛擬目錄之下。

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();
        }
    }
}


想要了解更多開發(fā)技術(shù),面試教程以及互聯(lián)網(wǎng)公司內(nèi)推,歡迎關(guān)注我的微信公眾號!將會不定期的發(fā)放福利哦~

文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/67132.html

相關(guān)文章

  • FastDFS Docker化部署 以及 Java SpringMVC實(shí)踐

    摘要:啟動(dòng)后會連接到告知自己的信息,形成映射關(guān)聯(lián),并采用心跳機(jī)制保持狀態(tài)。存儲節(jié)點(diǎn)負(fù)責(zé)文件的存儲,可以集群部署。一個(gè)卷組內(nèi)之間相互通信,文件進(jìn)行同步,保證卷內(nèi)完全一致,所以一個(gè)卷的容量以最小的服務(wù)器為準(zhǔn)。 簡介 FastDFS是一個(gè)輕量級分布式文件系統(tǒng)??梢詫ξ募M(jìn)行管理,功能包括:文件存儲、文件同步、文件訪問(文件上傳、文件下載)等,而且可以集群部署,有高可用保障。相應(yīng)的競品有Ceph、T...

    li21 評論0 收藏0
  • FastDFS Docker化部署 以及 Java SpringMVC實(shí)踐

    摘要:啟動(dòng)后會連接到告知自己的信息,形成映射關(guān)聯(lián),并采用心跳機(jī)制保持狀態(tài)。存儲節(jié)點(diǎn)負(fù)責(zé)文件的存儲,可以集群部署。一個(gè)卷組內(nèi)之間相互通信,文件進(jìn)行同步,保證卷內(nèi)完全一致,所以一個(gè)卷的容量以最小的服務(wù)器為準(zhǔn)。 簡介 FastDFS是一個(gè)輕量級分布式文件系統(tǒng)。可以對文件進(jìn)行管理,功能包括:文件存儲、文件同步、文件訪問(文件上傳、文件下載)等,而且可以集群部署,有高可用保障。相應(yīng)的競品有Ceph、T...

    lemanli 評論0 收藏0
  • SpringMVC【參數(shù)綁定、數(shù)據(jù)回顯、文件上傳

    摘要:那我們就不用在每一個(gè)方法通過將數(shù)據(jù)傳到頁面。還能夠配置該參數(shù)是否是必須的。方法的返回值有種重定向轉(zhuǎn)發(fā)內(nèi)部就是將數(shù)據(jù)綁定到域?qū)ο笾械?。注解能夠?qū)?shù)據(jù)綁定到中也就是中,如果經(jīng)常需要綁定到中的數(shù)據(jù),抽取成方法來使用這個(gè)注解還是不錯(cuò)的。 前言 本文主要講解的知識點(diǎn)如下: 參數(shù)綁定 數(shù)據(jù)回顯 文件上傳 參數(shù)綁定 我們在Controller使用方法參數(shù)接收值,就是把web端的值給接收到Cont...

    Flink_China 評論0 收藏0
  • 程序員魚皮 表情包網(wǎng)站項(xiàng)目學(xué)習(xí)

    摘要:我們可以來看看數(shù)據(jù)庫這個(gè)字段就是判斷我們的這條數(shù)據(jù)是否是有效的,表示這條數(shù)據(jù)是有效的,表示這條數(shù)據(jù)是無效的。 ? 技術(shù)棧 后端 Java 8開發(fā)框架:SpringB...

    Yangder 評論0 收藏0

發(fā)表評論

0條評論

SimpleTriangle

|高級講師

TA的文章

閱讀更多
最新活動(dòng)
閱讀需要支付1元查看
<