Springmvc与Mongo GridFs 实现文件的上传和获取
来源:互联网 发布:java hashset treeset 编辑:程序博客网 时间:2024/05/18 01:20
Springmvc与Mongo GridFs 实现文件的上传和获取 ,最常见的情景莫过于手机客户端实现头像上传
上传文件,代码片段一:
@RequestMapping(method = RequestMethod.POST)@ResponseBodypublic Object uploadFile(HttpServletRequest request) {CommonsMultipartResolver multipartResolver = new CommonsMultipartResolver(request.getSession().getServletContext());// 先判断request中是否包涵multipart类型的数据,String fileUrl = "";if (multipartResolver.isMultipart(request)) {// 再将request中的数据转化成multipart类型的数据MultipartHttpServletRequest multiRequest = (MultipartHttpServletRequest) request;Iterator<String> iter = multiRequest.getFileNames();while (iter.hasNext()) {MultipartFile file = multiRequest.getFile((String) iter.next());if (file != null) {try {GridFSInputFile inputFile = fileService.save(file.getInputStream(), file.getOriginalFilename());if (inputFile == null) {return StatusConfig.FileUploadError;} else {fileUrl = inputFile.getId().toString();}} catch (IllegalStateException | IOException e) {}}}HashMap<String, Object> hashMap = new HashMap<String, Object>();fileUrl = this.getHttpFilePath() + fileUrl;hashMap.put(ConstantsKey.STATUS, 200);hashMap.put(ConstantsKey.DATA, fileUrl);String json = ConvertUtils.as().toJson(hashMap);System.out.println("photourl:" + json);return json;} else {}}上传文件,代码片段二:
@Autowiredprivate MongoDbFactory mongodbfactory;/** * 用给出的id,保存文件,透明处理已存在的情况 * id 可以是string,long,int,org.bson.types.ObjectId 类型 * @param in * @param id */public GridFSInputFile save(InputStream in, Object id){GridFS gridFS = new GridFS(mongodbfactory.getDb());GridFSInputFile gridFSInputFile = gridFS.createFile(in);gridFSInputFile.save();return gridFSInputFile;}
通过Http请求文件
@RequestMapping(value = "/{id}", method = RequestMethod.GET)public void getFile(@PathVariable String id, HttpServletResponse response) {GridFSDBFile file = fileService.getById(new ObjectId(id));OutputStream os = null;try {os = response.getOutputStream();os.write(FileUtils.readInputStream(file.getInputStream()));os.flush();} catch (Exception e) {e.printStackTrace();}}
请求文件代码片段2:
/** * 据id返回文件 */public GridFSDBFile getById(Object id){DBObject query = new BasicDBObject("_id", id);GridFS gridFS = new GridFS(mongodbfactory.getDb());GridFSDBFile gridFSDBFile = gridFS.findOne(query);return gridFSDBFile;}
0 0
- Springmvc与Mongo GridFs 实现文件的上传和获取
- SpringMVC实现文件的上传与下载
- SpringMVC文件上传与下载的实现
- springMVC实现文件的上传和下载
- SpringMVC实现文件的上传和下载
- 读写mongo GridFs中的文件
- springmvc实现文件的上传
- SpringMvc实现文件的上传
- SpringMvc 文件上传并且实现与ftp服务器的对接
- SpringMVC 实现文件的上传与下载--较为原始
- springMVC获取上传文件
- SpringMVC + servlet3.0 文件上传的配置和实现
- SpringMVC框架实现文件、资源的上传和下载
- SpringMVC---实现文件上传与下载
- SpringMVC实现文件上传与下载
- springmvc实现文件上传和下载
- SpringMVC 实现文件上传和下载
- springmvc实现文件上传和下载
- 分治法之归并排序
- 项目开发中的一个小结
- 线程相关
- 学习总结
- c++学习心得
- Springmvc与Mongo GridFs 实现文件的上传和获取
- CSS 样式异步加载
- Java学习笔记之进程和线程
- node.js express创建项目
- 使Eclipse下支持编写HTML/JS/CSS/JSP页面的自动提示
- PCIe 之TW68XX驱动
- 关于《高油压调速器机械液压系统的优化设计》的疑问
- redis主从安装部署
- java语言安全机制浅析