gpt4 book ai didi

java - 我们可以从 byteArrayResource 获取文件名吗?

转载 作者:行者123 更新时间:2023-12-02 09:51:35 25 4
gpt4 key购买 nike

这是关于上传xlsx文件。最初我将 xlsx 文件作为 javax.servlet.http.Part 并尝试转换为 ByteArrayResource 因为我需要通过 RestTemplate 传递.

new ByteArrayResource(IOUtils.toByteArray(input.getFile().getInputStream())

这里input.getFile()javax.servlet.http.Part

当我将此处转换为 ByteArrayResource 并发送回另一个层以进行业务逻辑时,我可以从 ByteArrayResource 获取文件名吗?

无论如何我们可以从Part获取filename,我想知道是否可以从ByteArrayResource获取filename > 或 ByteArray

最佳答案

这已经晚了,但如果有人仍在寻找答案。

ByteArrayResource 默认情况下没有任何文件名。查看父类(super class)方法AbstractResource.getFileName(),它返回null。因此,除非您在创建 ByteArrayResource 时显式设置名称,否则它将保持为 null。

你可以像这样实现

ByteArrayResource resource = new ByteArrayResource(bytearray) {
@Override
public String getFilename() {
return "somename";
};
}

现在如何使用实际文件名而不是“somename”。如果您使用 Spring,则可以在 Controller 中定义一个方法,接受 Multipart 作为参数。

public ResponseEntity<byte[]> handleFileOperation(Multipart file) {}

一旦获得 MultipartFile 实例,您就可以按照您想要的方式使用它。

关于java - 我们可以从 byteArrayResource 获取文件名吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56287405/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com