我有一个云盘项目,需要从页面上传用户个人文件到服务端,此时页面应该用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. 上传暂停客户端还可以考虑,服务端没做过也看不到如何做