【问题标题】:Unzip a spring MultipartFile in java在java中解压spring MultipartFile
【发布时间】: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


【解决方案1】:

试试 org.springframework.mock.web.MockMultipartFile, 它旨在用于测试,因此可以在本地创建。 有一个构造函数

public MockMultipartFile(String name, InputStream contentStream)

可以满足您的需求....

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-10-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-12-11
    • 2017-11-27
    • 1970-01-01
    相关资源
    最近更新 更多