日期:2014-05-17  浏览次数:20735 次

spring 上传 文件 mysql


问题阐述: 利用spring CommonsMultipartResolver 进行文件的上传,出现文件上传大于1M 内存溢出等问题

(类似这个:http://topic.csdn.net/t/20060803/15/4924883.html )但是以上提出解决办法是对于上传到硬盘上。
以下是上传到数据库的代码。

 public Set<MultipartFile> getFileSet(HttpServletRequest request) {
  MultipartHttpServletRequest multipartRequest = (MultipartHttpServletRequest) request;
  Set<MultipartFile> fileset = new LinkedHashSet<MultipartFile>();
  for (Iterator it = multipartRequest.getFileNames(); it.hasNext();) {
  String key = (String) it.next();
  MultipartFile file = multipartRequest.getFile(key);
  if (file.getOriginalFilename().length() > 0) {
  fileset.add(file);
  }
  }
  return fileset;
  }


if (multipartFile != null) {
  for (MultipartFile mf : multipartFile) {
  Attachment at = new Attachment(); 
  articleAttachment.setContent(mf .getBytes()); //对应的pojo的字段为byte[]
  attachmentDao.save(articleAttachment);
  }

怎么才能解决getBytes()内存消耗问题?(尽量变动小一点) 原本满足上传小图片,但需求有更改,代码基本完成,改动越小越好。 思路完整、代码清晰 咱就上分。

------解决方案--------------------
帮顶,让更多人看到帖子,增加解决问题的概率。嘿嘿
------解决方案--------------------
一般这么大的文件都是用断点续传吧