我正在将base64编码后的图像从JSP发送到使用AJAX的servlet。在Servlet端,我试图将其解码并保存到文件或呈现给浏览器。
我得到的图像是空的。这是我的servlet辅助代码
String imageStr = request.getParameter("image");
byte[] decoded = Base64.decodeBase64(imageStr);
String path = "D:\\myImage.png";
try {
OutputStream out1 = new BufferedOutputStream(new FileOutputStream(path));
out1.write(decoded);
} finally {
}
我得到一个图像,但是它是空的。
最佳答案
尝试关闭流,它应该刷新所有缓冲的数据:
String imageStr = request.getParameter("image");
byte[] decoded = Base64.decodeBase64(imageStr);
String path = "D:\\myImage.png";
OutputStream out1 = null;
try {
out1 = new BufferedOutputStream(new FileOutputStream(path));
out1.write(decoded);
} finally {
if (out1 != null) {
*out1.close();*
}
}
并确保
decoded
数组确实包含一些数据。关于java - JAVA编码/解码base 64并在浏览器中呈现或保存到文件,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/18079018/