MongoDb學習(五)---gridfs --http文件下載


現在網上的文章都是用的低版本的jar包,而最新的jar包,下載的方法進行了改變。在網上也沒找到好的方法。就用原生的方法進行下載,

我也不知道對不對。反正可以下載了。就先這樣吧。后期准備還是用低版本的開發比較好。至少網上文章多。

http下載。主要獲取數據庫的內容,輸入流。然后獲取響應的輸出流。

用輸出流給網頁。進行下載。

    @ResponseBody
    @RequestMapping("/download")
    public void download(HttpServletResponse response){
        GridFSFile fs = gridFsTemplate.findOne(Query.query(Criteria.where("_id").is("5c0605554a24a322dfea107d")));

        try {

            byte bs[]=new byte[1024];
            GridFsResource resource = gridFsTemplate.getResource(fs);
            InputStream inputStream = resource.getInputStream();
            ServletOutputStream outputStream = response.getOutputStream();
            response.setContentType("application/octet-stream");
            response.setHeader("Content-disposition","attachment;filename="+resource.getFilename());
            while (inputStream.read(bs)>0){
                outputStream.write(bs);
            }

            inputStream.close();

            outputStream.close();


        } catch (IOException e) {
            e.printStackTrace();
        }
     

    }

低版本

/*
* 下載文件。傳入文件id
* */
@RequestMapping(value = "/files/download/{id}")
    public void getDownload(@PathVariable String id, HttpServletResponse response){
    try {
        Resource resource=resourceService.get(id);

        if (resource!=null){
            if (resource.getType()==1){
                GridFSDBFile file = fileService.getFile(resource.getFileId());
                if (file!=null){
                    response.setContentType("application/octet-stream");
                    OutputStream out = response.getOutputStream();
                    response.setHeader("Content-disposition","attachment;filename="+file.getFilename());
                    file.writeTo(out);
                    out.flush();
                    out.close();
                }
            }else {
            }
        }

    }catch (Exception e){
    }

    }

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM