springmvc多部分文件将xls文件转换为.tmp文件

jq6vz3qz  于 2021-07-24  发布在  Java
关注(0)|答案(0)|浏览(180)

我的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)?是否意味着文件已损坏?如果我漏了什么,请告诉我。
您的时间将不胜感激。

暂无答案!

目前还没有任何答案,快来回答吧!

相关问题