我的jps文件
<form id="createGroupForm" method="POST" enctype="multipart/form-data">
<div class="row upload-create-ag-data">
<p class="ibmbr-title"><fmt:message bundle="${msg}" key="ibmDisc.title"/></p>
<div class="col-sm-6">
<input class="form-control" type="file" name="uploadFile" id="uploadFile" accept="*.xls">
</div>
<div class="col-sm-6">
<input class="btn btn-primary" type="button" style="height: 34px; margin-bottom: 5px; line-height: 0;" id="uploadGroupDetails" name="uploadGroupDetails" value='<fmt:message bundle="${pages}" key="CreateGroupFileUpload.upload"/>'/>
</div>
</div>
</form>
我的控制器
@RequestMapping(value = "/CreateGroup", method = RequestMethod.POST, consumes = "multipart/form-data")
public @ResponseBody HttpServletResponse createGroup(@RequestParam(value = "uploadFile", required = true) MultipartFile uploadFile, HttpServletRequest request,
HttpServletResponse response) throws Exception {
当我上传一个xls文件(比如group.xls)提交上述表单时,它已经被保存为tomcat文件夹中的.tmp文件。我正在尝试使用控制器中接收的多部分文件创建工作簿。
Workbook excelWorkBook = new HSSFWorkbook(uploadFile.getInputStream());
上面的一行抛出了一些未知的异常。尝试了多个解决方案,少数来自web,少数来自stackoverflow,但均无效。例如,下面的sol(solfromstackoverflow)使用接收的多部分文件创建一个.xls文件,但无法打开该.xls文件,其已损坏。
String destFilePath = "/root/git/" + orgName;
File dest = new File(destFilePath);
try {
uploadFile.transferTo(dest);
boolean canRead = dest.canRead();
} catch (IllegalStateException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
首先,为什么spring要以.tmp的形式保存上传的文件(group.xls)?是否意味着文件已损坏?如果我漏了什么,请告诉我。
您的时间将不胜感激。
暂无答案!
目前还没有任何答案,快来回答吧!