MultipartFile 如何释放正在打开的文件
/**
* 解压解析ZIP文件生成行程信息
*
* @param file
* @throws IOException
* @throws IllegalStateException
*/
@Transactional
@SuppressWarnings("rawtypes")
public void doUploadVisitReportZip(MultipartFile file) throws IllegalStateException, IOException {
FileOutputStream outStream = null;
InputStream inputStream = null;
try {
// 创建新行程
VisitReport visitReport = new VisitReport();
// 上传的ZIP文件目录
String zipCalculateRealPath = uploadFileService.zipCalculateRealPath() + File.separator;
File saveFile = new File(zipCalculateRealPath + file.getOriginalFilename());
// 保存ZIP文件到磁盘
if (saveFile.exists()) {
saveFile.delete();
}
if (!saveFile.exists()) {
file.transferTo(saveFile);
}
// 读取ZIP文件
ZipFile zipFile = new ZipFile(saveFile);
// 遍历ZIP文件
for (Enumeration entities = zipFile.getEntries(); entities.hasMoreElements();) {
ZipEntry zipEntry = (ZipEntry) entities.nextElement();
String unZipPath = ZipUtil.getUnZipPath(zipEntry.getName(), zipCalculateRealPath);
File unZipFile = new File(unZipPath);
ZipUtil.mkdirs(zipEntry, unZipFile);
// 从ZIP条目获得输入流
inputStream = zipFile.getInputStream(zipEntry);
// 如果不是目录
if (!zipEntry.isDirectory()) {
outStream = new FileOutputStream(unZipFile);
// 获得写入磁盘的输出流
ZipUtil.write2Disk(outStream, inputStream);
}
}
// 读取Excel生成行程Visit Report
String excelFilePath = zipCalculateRealPath + uploadFileService.breakSuffix(file.getOriginalFilename())[0] + File.separator + "visit-info.xls";
InputStream is = new FileInputStream(excelFilePath);
// 读取excel属性赋值
visitReport = readExcelContent(visitReport, is);
dao.saveOrUpdate(visitReport);
} catch (Exception e) {
e.printStackTrace();
} finally {
try {
if (outStream != null) {
outStream.close();
}
if (inputStream != null) {
inputStream.close();
}
} catch (IOException e) {
e.printStackTrace();
}
}如题,功能是上传一个zip到服务器,然后保存解压,解析里面的内容
File saveFile = new File(zipCalculateRealPath + file.getOriginalFilename());
// 保存ZIP文件到磁盘
if (saveFile.exists()) {
saveFile.delete();
}
if (!saveFile.exists()) {
file.transferTo(saveFile);
}
saveFile这个文件写入后,不能删除,导致上传重复名字的文件会有问题。
transferTo写入文件,如何释放,
...全文
Java读取MultipartFile Zip文件并将每个文件转换为MultipartFile Java读取MultipartFile Zip文件并将每个文件转换为MultipartFile 阅读详情
相关推荐
利用MultipartFile实现文件上传功能
"利用MultipartFile实现文件上传功能详解"在Java Web开发中,文件上传是一个常见的需求,而MultipartFile是Spring框架中一个非常强大的工具,用于处理文件上传。
Java利用MultipartFile实现上传多份文件的代码
Java 利用 MultipartFile 实现上传多份文件的代码Java 中实现上传多份文件的代码是非常实用的技术,以下是关于 MultipartFile 的知识点:MultipartFile 概念MultipartFile
解决springboot MultipartFile文件上传遇到的问题
解决 Spring Boot MultipartFile 文件上传遇到的问题基于 Spring Boot 框架的 MultipartFile 文件上传经常会遇到一些问题,本文将介绍如何解决这些问题,希望对大家有所帮助
SpringMVC使用MultipartFile实现文件上传
SpringMVC 使用 MultipartFile 实现文件上传在本篇文章中,我们将详细介绍如何使用 SpringMVC 框架实现文件上传功能,通过使用 MultipartFile 对象来处理文件上传
js实现文件上传功能 后台使用MultipartFile
总结起来,通过JavaScript和MultipartFile,我们可以实现一个基本的文件上传功能,用户可以选择文件,前端使用XMLHttpRequest和FormData处理文件上传,后端通过MultipartFile


