我需要渲染一个可以在内部和外部存储图像的 html 文档。为了渲染,我使用了一个库,该库将通过它们的 url 加载这些图像(如 html 中引用的那样)。
我正在做的是:
对于外部图像,我通常使用 http:// 网址。
对于类路径中的图像,我在 url 中使用“classpath://”协议,以便在库尝试加载时重定向到它。
像 2 一样做。我扩展 java.net.URLStreamHandler 如下:
public class ClasspathUrlHandler extends URLStreamHandler
{
@Override
protected URLConnection openConnection(URL relativeUrl) throws IOException
{
ClassLoader classLoader = getClass().getClassLoader();
URL absoluteUrl = classLoader.getResource(relativeUrl.getPath());
return absoluteUrl.openConnection();
}
}
我现在的问题是一些图像在数据库中存储为 blob,我只能以字节数组的形式访问它们。我无法像在类路径案例中那样获得它们的绝对网址。
有没有办法可以基于 byte[] 创建一个 URLConnection 对象?
注意:我想要 URLConnection 因为这是 URLStreamHandler 中的 openConnection() 返回的,就像在示例中一样。