【发布时间】:2017-07-09 00:38:03
【问题描述】:
我正在使用 jsp/servlets 做一个带有图像的小项目。其中我动态生成了一些图像(实际上我会将两个图像共享解密为一个)。解密后的图像必须直接显示到浏览器而不将其保存为文件在文件系统中。
Crypting c=new Crypting();
BufferedImage imgKey;
BufferedImage imgEnc;
imgKey = ImageIO.read(new File("E:/Netbeans Projects/banking/web/Key.png"));
imgEnc=ImageIO.read(new File("E:/Netbeans Projects/banking/build/web/upload/E.png"));
BufferedImage imgDec=Crypting.decryptImage(imgKey,imgEnc);
当我将它存储在文件系统中并使用<img>显示它时,它不显示图像。重新加载时它显示图像。所以这是IDE的后端工作问题。
任何帮助请...
【问题讨论】:
-
为什么首先将图像保存在文件系统上,因为这正是您不想做的事情?而是将其写入 HTTP 响应输出流,并设置适当的内容类型。
-
您可以尝试将最终图像字节流放入
base64并将其嵌入到页面中,请参阅Embedding Base64 Images 在这种情况下您不必将图像保存在文件系统中 -
@JB Nizet 你能提供一些与我上面介绍的代码或任何链接相关的示例代码 sn-p 吗??
-
stackoverflow.com/questions/2340406/…。您的图像不是来自数据库,但原理是相同的:您需要使用 ImageIO.write() 将 BufferedImage 编码为 png(例如),并将编码后的图像写入响应输出流,并使用适当的内容类型,如我刚刚发布的链接中所述。