亚洲中字慕日产2020,大陆极品少妇内射AAAAAA,无码av大香线蕉伊人久久,久久精品国产亚洲av麻豆网站

資訊專欄INFORMATION COLUMN

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

SimpleTriangle / 3191人閱讀

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

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

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

圖片存儲(chǔ)方式

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

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

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

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

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

Intellij中配置虛擬目錄


進(jìn)入tomcat配置管理頁(yè)面,點(diǎn)擊deployment標(biāo)簽,然后點(diǎn)擊左下角的加號(hào)選擇‘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文件的文件名就是虛擬目錄對(duì)應(yīng)的訪問路徑名,如果需要多級(jí)目錄,則用#分割開來,例如psm#pc.xml對(duì)應(yīng)的訪問路徑就是/psm/pic。在該xml文件中配置虛擬目錄,語(yǔ)法如下


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

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

    
    
        ...
        

controller接收上傳文件的請(qǐng)求,在這里可以參考這篇博客
java存儲(chǔ)文件的代碼如下,該方法將圖片的字節(jié)流轉(zhuǎn)換為文件并存儲(chǔ)在相應(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.
 * 將圖片存儲(chǔ)至本地
 */
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)注我的微信公眾號(hào)!將會(huì)不定期的發(fā)放福利哦~

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

轉(zhuǎn)載請(qǐng)注明本文地址:http://www.ezyhdfw.cn/yun/67132.html

相關(guān)文章

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

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

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

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

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

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

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

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

    Yangder 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

SimpleTriangle

|高級(jí)講師

TA的文章

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