一尘不染

如何在Servlet中读取图片(或其他文件)并将其编码为base64

java

在servlet中,我必须从磁盘读取图像文件,将其编码为Base64,然后发送回客户端。因为我只找到了适用于iOS,Python和其他类型的示例(主要都是以相同的方式进行操作),所以我想在这里发布代码以帮助他人;)

警告! 这仅适用于最大2GB的文件:设置容量ByteBuffer仅需int


阅读 473

收藏
2020-12-03

共1个答案

一尘不染

为什么如此复杂,为什么要将完整图像读入内存?一个简单得多的解决方案:

protected void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { 
    sun.misc.BASE64Encoder enc = new sun.misc.BASE64Encoder();
    enc.encode(new FileInputStream("/path/to/file.whatever"), response.getOutputStream());
}
2020-12-03