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

multipart/form-data断点上传问题
本帖最后由 poikillll 于 2013-06-05 16:34:25 编辑
我有一个云盘项目,需要从页面上传用户个人文件到服务端,此时页面应该用multipart/form-data来提交数据,如下:
<form id="uploadFile" action="portal/admin/batchsms/importcontact/" method="post" enctype="multipart/form-data" target="hidden_frame">
<input type="file" name="file" id="importFile"/>
</form>

controller文件大致如下:
@RequestMapping(value = "/importcontact", method = RequestMethod.POST)
public void importContact(@RequestParam(value = "file") MultipartFile file,
PrintWriter out, HttpServletRequest request) {
   logger.debug("start process ...");
   dosomething...
}

上传文件支持大文件,此时选择一个文件时点击上传提交时,发现这个文件是整个上传到服务器后才执行controller,才打印出start process...

这里有几个问题想问下高人
1:这个文件是以什么形式上传到服务器的?以临时文件存放还是以字节流形式保存在内存中?
2:这样情况下,一旦抛异常,超时,文件就必须重新传了,因为传的过程中不知道从何处去控制,此时该如何实现上传暂停功能?

------解决方案--------------------
1. 临时文件
2. 上传暂停客户端还可以考虑,服务端没做过也看不到如何做