最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

java+MongoDB實現(xiàn)存圖片、下載圖片的方法示例

 更新時間:2019年09月02日 10:33:28   作者:yqwang75457  
這篇文章主要介紹了java+MongoDB實現(xiàn)存圖片、下載圖片的方法,結(jié)合實例形式詳細(xì)分析了java結(jié)合MongoDB實現(xiàn)圖片的存儲與下載相關(guān)操作技巧,需要的朋友可以參考下

本文實例講述了java+MongoDB實現(xiàn)存圖片、下載圖片的方法。分享給大家供大家參考,具體如下:

1.存圖片

demo:將某個文件存到mongoDB,這個file可以通過前臺參數(shù)傳入,我這里直接將D://test.png存到mongoDB

@RequestMapping("/addFile")
@ResponseBody
public String addFile(){
    MongoClient client = new MongoClient("127.0.0.1",27017);
    DB db = client.getDB("files");
    GridFS fs = new GridFS(db);
    try {
      GridFSInputFile gridFSInputFile = fs.createFile(new File("D://test.png"));
      gridFSInputFile.setFilename("db_test.png");
      gridFSInputFile.save();
    } catch (IOException e) {
      e.printStackTrace();
    }
    return "file over";
}

執(zhí)行后,可看到圖片已經(jīng)存入成功:

2.下載圖片

需要指定圖片id,可從前端參數(shù)傳入,我這里寫死(上一步存圖片,對應(yīng)了一個mongoDB中的files_id):

@RequestMapping("/downFile")
  public void downFile(HttpServletResponse response){
    String fileId = "5c0f7c374fc404123403d69e";//這里可以通過參數(shù)取代
    try {
      MongoClient client = new MongoClient("127.0.0.1",27017);
      DB db = client.getDB("files");
      GridFS fs = new GridFS(db);
      GridFSDBFile gridFSDBFile = fs.findOne(new ObjectId(fileId));
      OutputStream sos = response.getOutputStream();
      response.setContentType("application/octet-stream");
      // 獲取原文件名
      String name = (String) gridFSDBFile.get("filename");
      String fileName = new String(name.getBytes("GBK"), "ISO8859-1");
      // 設(shè)置下載文件名
      response.addHeader("Content-Disposition", "attachment; filename=\"" + fileName + "\"");
      // 向客戶端輸出文件
      gridFSDBFile.writeTo(sos);
      sos.flush();
      sos.close();
    } catch (IOException e) {
      e.printStackTrace();
    }
  }

更多java相關(guān)內(nèi)容感興趣的讀者可查看本站專題:《Java圖片操作技巧匯總》、《java日期與時間操作技巧匯總》、《Java操作DOM節(jié)點技巧總結(jié)》、《Java文件與目錄操作技巧匯總》及《Java數(shù)據(jù)結(jié)構(gòu)與算法教程》。

希望本文所述對大家java程序設(shè)計有所幫助。

相關(guān)文章

  • Servlet實現(xiàn)統(tǒng)計頁面訪問次數(shù)功能

    Servlet實現(xiàn)統(tǒng)計頁面訪問次數(shù)功能

    這篇文章主要介紹了Servlet實現(xiàn)統(tǒng)計頁面訪問次數(shù)功能,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2021-04-04
  • bool當(dāng)成函數(shù)參數(shù)錯誤理解

    bool當(dāng)成函數(shù)參數(shù)錯誤理解

    經(jīng)常會在函數(shù)的參數(shù)里使用bool參數(shù),這會大大地降低代碼的可讀性
    2012-11-11
  • Spring Core動態(tài)代理的實現(xiàn)代碼

    Spring Core動態(tài)代理的實現(xiàn)代碼

    通過JDK的Proxy方式或者CGLIB方式生成代理對象的時候,相關(guān)的攔截器已經(jīng)配置到代理對象中去了,接下來通過本文給大家介紹Spring Core動態(tài)代理的相關(guān)知識,需要的朋友可以參考下
    2021-10-10
  • 詳解Java的類加載機制及熱部署的原理

    詳解Java的類加載機制及熱部署的原理

    今天我要講的就是Java的熱部署的原理,由于熱部署的原理和類的加載機制有關(guān),所以打算講一下類加載的機制,文中介紹的非常詳細(xì),需要的朋友可以參考下
    2021-05-05
  • Java編程中線程池的基本概念和使用

    Java編程中線程池的基本概念和使用

    這篇文章主要介紹了Java編程中線程池的基本概念和使用,多線程編程是使Java程序?qū)崿F(xiàn)并發(fā)的一個重要手段,需要的朋友可以參考下
    2015-11-11
  • 消息中間件ActiveMQ的簡單入門介紹與使用

    消息中間件ActiveMQ的簡單入門介紹與使用

    消息隊列是指利用高效可靠的消息傳遞機制進(jìn)行與平臺無關(guān)的數(shù)據(jù)交流,并基于數(shù)據(jù)通信來進(jìn)行分布式系統(tǒng)的集成,這篇文章主要給大家介紹了關(guān)于ActiveMQ的簡單入門介與使用的相關(guān)資料,需要的朋友可以參考下
    2021-11-11
  • Java使用ArrayList實現(xiàn)撲克牌的示例代碼

    Java使用ArrayList實現(xiàn)撲克牌的示例代碼

    學(xué)習(xí)了關(guān)于集合類的知識,我們可以做一個小項目來加深對集合類知識的學(xué)習(xí)!本文就來利用ArrayList實現(xiàn)撲克牌發(fā)牌洗牌效果,需要的可以參考一下
    2022-10-10
  • 基于mybatis like %%的問題

    基于mybatis like %%的問題

    這篇文章主要介紹了mybatis like %%的問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-10-10
  • springboot熱部署class XX cannot be cast to class XX解決方案

    springboot熱部署class XX cannot be cast&nbs

    在使用DevTools進(jìn)行熱加載時遇到的`classXXcannotbecasttoclassXX`錯誤,以及解決該問題的方法,通過在`resources`目錄下創(chuàng)建`META-INF/spring-devtools.properties`文件,并添加相應(yīng)的配置,可以有效解決此問題,使DevTools熱加載功能得以正常工作
    2025-02-02
  • java 分轉(zhuǎn)元與元轉(zhuǎn)分實現(xiàn)操作

    java 分轉(zhuǎn)元與元轉(zhuǎn)分實現(xiàn)操作

    這篇文章主要介紹了java 分轉(zhuǎn)元與元轉(zhuǎn)分實現(xiàn)操作,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2021-02-02

最新評論

松溪县| 澳门| 大埔县| 安顺市| 通许县| 娱乐| 来安县| 上思县| 格尔木市| 丰城市| 镇安县| 建德市| 永德县| 鄂温| 神木县| 达孜县| 镇安县| 营山县| 彭州市| 尤溪县| 永新县| 乌拉特后旗| 安平县| 芒康县| 潜江市| 北安市| 外汇| 普定县| 尤溪县| 固安县| 克拉玛依市| 汤阴县| 白山市| 丹寨县| 邳州市| 双柏县| 公主岭市| 万全县| 社旗县| 东乡族自治县| 新营市|