【发布时间】:2016-09-20 16:17:18
【问题描述】:
我有一个当前允许用户将大量数据上传到 Web 服务的应用程序。问题是这些文件需要一些时间才能通过网络上传,所以我想允许用户先压缩文件,然后再上传。
@RequestMapping(value = "upload", method = RequestMethod.POST)
@ResponseBody
public ResponseEntity<?> uploadObjects(HttpServletRequest request,
@RequestParam("file") MultipartFile file) {
//Do stuff with it
}
我目前可以将 MultipartFile 解压缩到 Java IO 文件中,但所有现有逻辑仅适用于 MultipartFile,并且需要一些(可能很多)返工。
private File unzip(MultipartFile file) throws IOException {
byte[] buffer = new byte[1024];
int bufferSize = 1024;
File tempFile = null;
ZipInputStream zis = new ZipInputStream(file.getInputStream());
ZipEntry entry;
while ((entry = zis.getNextEntry()) != null) {
tempFile = File.createTempFile(entry.getName(), "tmp");
tempFile.deleteOnExit();
FileOutputStream fos = new FileOutputStream(tempFile);
BufferedOutputStream bos = new BufferedOutputStream(fos, bufferSize);
int count;
while ((count = zis.read(buffer, 0, bufferSize)) != -1) {
bos.write(buffer, 0, count);
}
bos.flush();
bos.close();
}
zis.close();
return tempFile;
}
有没有办法将 MultipartFile 解压缩回 MultipartFile?还是将 File 转换为 MultipartFile?
【问题讨论】:
标签: java spring file zip unzip