struts1+mongodb下载文件方法

上传文件时通过读取文件得到二进制流直接保存到mongodb

下载时先查询出二进制流然后直接输入到界面并下载

 

 

MongoManager mm = new MongoManager();
				mm.getInstance();
				
				DataProcessDao dataProcessDao = new DataProcessDao();
				dataProcessDao.setDb(mm.getDB());
				初始化mongodb 通过

				if ("Y".equals(rwFxglAttachment.getIsImage())) {
					//直接输出到界面显示图片
					dataProcessDao.queryByName(id, response.getOutputStream());
				} else {
					response.setContentType("application/octet-stream");
					String fileName = rwFxglAttachment.getFilename() + "." + rwFxglAttachment.getExtension();
					//filename必须是ios格式 否则会乱码
					response.setHeader("Content-Disposition", "attachment; filename=" + fileName);
					dataProcessDao.queryByName(id, response.getOutputStream());
				}

 MongoManager 和 DataProcessDao 是自己写的mongodb包装类

 

不用包装类的方式
Mongo mongo = new Mongo();

GridFS fs = new GridFS(mongo.getDb(dbName));
        DBObject query = new BasicDBObject();
        Pattern p = Pattern.compile(patternStr);
        query.put("filename", p);
        GridFSDBFile gfsdbfile = fs.findOne(query);

        return gfsdbfile.writeTo(ops);

ops用response.getOutputStream() 如上面包装类dataProcessDao.queryByName(id, response.getOutputStream());

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值