我正在将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/

10-11 04:44