如何有效地通过url下载文件并转换为org.springframework.core.io.Resource?

How effectively download file by url and convert to org.springframework.core.io.Resource?

提问人:NeverSleeps 提问时间:3/14/2023 最后编辑:NeverSleeps 更新时间:3/15/2023 访问量:188

问:

我有一个打开文件的链接。该文件可以是 pdf 或图像。我需要加载此文件,然后在类似 .org.springframework.core.io.Resource

我的代码下载一个文件并将其保存到存储库文件夹。但它严格指定了扩展名和文件名。

public org.springframework.core.io.Resource downloadWithJavaNIO(String fileURL, String localFilename) {
    URL url = new URL(fileURL);
    try (ReadableByteChannel readableByteChannel = Channels.newChannel(url.openStream());
         FileOutputStream fileOutputStream = new FileOutputStream(localFilename);
         FileChannel fileChannel = fileOutputStream.getChannel()
    ) {
        fileChannel.transferFrom(readableByteChannel, 0, Long.MAX_VALUE);
    }

    // TODO converting to org.springframework.core.io.Resource
    return null;
}

我可以以某种方式自动确定扩展名和文件名吗?/等等。有没有办法在没有保存到存储库阶段的情况下将其转换为?.pdf.pngorg.springframework.core.io.Resource

解决我问题的最佳方法是什么?

java spring io nio 文件输出流

评论


答:

0赞 Jiandong 3/15/2023 #1

Spring 确实提供了一些 Resource 实现。

尝试我们 FileUrlResource,让我们知道它是否有效。

Resource resource = new FileUrlResource(new URL(fileURL));