mongoDB 实现小文件上传下载
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了mongoDB 实现小文件上传下载,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含3267字,纯文字阅读大概需要5分钟。
内容图文
![mongoDB 实现小文件上传下载](/upload/InfoBanner/zyjiaocheng/869/3b485938a778433d80fcee4238e712db.jpg)
场景:小文件, 图片上传到mongo
package com.icil.elsa.monitor.web; import java.io.IOException; import java.io.OutputStream; import java.io.UnsupportedEncodingException; import javax.annotation.Resource; import javax.servlet.http.HttpServletResponse; import org.springframework.beans.factory.annotation.Qualifier; import org.springframework.data.mongodb.core.MongoTemplate; import org.springframework.data.mongodb.core.query.Criteria; import org.springframework.data.mongodb.core.query.Query; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.RestController; import org.springframework.web.multipart.MultipartFile; import com.icil.elsa.monitor.db.monitor.entity.PictureDO; @RestController public class PicrtureController { @Resource(name = "monitorMongoTemplate") @Qualifier("monitorMongoTemplate") public MongoTemplate mongoTemplates; @PostMapping("/pic") public String uploadPicture(@RequestParam(value = "pic", required = false) MultipartFile file) throws IOException { String originalFilename = file.getOriginalFilename(); byte[] bytes = file.getBytes(); PictureDO pictureDO = new PictureDO(); String pic = new String(bytes,"UTF-8"); pictureDO.setName(originalFilename); pictureDO.setPic(pic); mongoTemplates.insert(pictureDO); return "OK"; } @GetMapping("/get") public void downLoadPic(HttpServletResponse response, String name) throws UnsupportedEncodingException { Query query = Query.query(Criteria.where("name").is(name)); PictureDO pictureDO = mongoTemplates.findOne(query, PictureDO.class); String filename=pictureDO.getName(); try { byte[] buf = pictureDO.getPic().getBytes("UTF-8"); response.reset(); // 非常重要 // 纯下载方式 response.setContentType("image/*"); // response.setContentType("application/x-msdownload"); // response.setHeader( "Content-type: ", "image/*" ); // response.setHeader( "Content-Disposition", "image/png" ); // response.setContentType( "application/octet-stream; charset=utf-8"); // response.setHeader("Content-Disposition", "attachment; filename=" +filename); OutputStream out = response.getOutputStream(); out.write(buf); //clean cache pipe & close out.flush(); out.close(); } catch (IOException e) { e.printStackTrace(); } response.setStatus(HttpServletResponse.SC_MOVED_PERMANENTLY); } //纯下载 @GetMapping("/get1") public void downLoadPic1(HttpServletResponse response, String name) throws UnsupportedEncodingException { Query query = Query.query(Criteria.where("name").is(name)); PictureDO pictureDO = mongoTemplates.findOne(query, PictureDO.class); String filename=pictureDO.getName(); try { byte[] buf = pictureDO.getPic().getBytes("UTF-8"); response.reset(); // 非常重要 // 纯下载方式 response.setContentType("application/x-msdownload"); // response.setContentType( "application/octet-stream; charset=utf-8"); response.setHeader("Content-Disposition", "attachment; filename=" +filename); OutputStream out = response.getOutputStream(); out.write(buf); //clean cache pipe & close out.flush(); out.close(); } catch (IOException e) { e.printStackTrace(); } response.setStatus(HttpServletResponse.SC_MOVED_PERMANENTLY); } }
内容总结
以上是互联网集市为您收集整理的mongoDB 实现小文件上传下载全部内容,希望文章能够帮你解决mongoDB 实现小文件上传下载所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。