• 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){
        }
    
        }
    一万年太久,只争朝夕!
  • 相关阅读:
    DNN SEO专题 (收集)
    DataTable或者DataSet匯出Excel
    用C#制作PDF文件全攻略(转)
    BlogEngine资料收集
    DNN架构解析(收集)
    Community Server:快速找到需要修改的文件[技巧]
    通用的分页存储过程
    DataTable/DataSet汇出Excel
    百试不爽的30条职场经验(转)
    等宽字体
  • 原文地址:https://www.cnblogs.com/chaoba/p/10064049.html
Copyright © 2020-2023  润新知