extractedFiles.add(new InputStreamResource(extractedPath.toFile().toURI().toString()));错了吧
时间: 2024-11-25 10:33:13 浏览: 13
确实,在将解压后的文件添加到`MultipartFile`列表时,这里可能需要稍作调整。`InputStreamResource`通常用于创建`MultipartFile`,它需要一个输入流(`InputStream`)或者资源路径。`extractedPath.toFile().toURI().toString()`返回的是文件的URI字符串,而不是可以直接提供给`InputStreamResource`的资源。
正确的做法应该是使用`Files.newInputStream(extractedPath)`来获得输入流,然后构造`InputStreamResource`。修改后的代码如下:
```java
InputStreamResource inputStreamResource = new InputStreamResource(Files.newInputStream(extractedPath));
MultipartFile extractedFile = new CommonMultipartFile(inputStreamResource); // 如果CommonMultipartFile是你自定义的MultipartFile实现
extractedFiles.add(extractedFile);
```
或者如果不想自定义`MultipartFile`,那么应该使用`new MultipartFile(extractedPath.toString(), "unnamed", "application/octet-stream", Files.size(extractedPath))`,但这会丢失原始文件名信息。
请注意,这些建议基于假设你的环境支持`Files.newInputStream`和`InputStreamResource`的用法。如果你使用的是其他库,具体实现可能会有所不同。
阅读全文