我想上传一个HTML画布到Java Servlet并返回画布数据作为PNG图像。我的问题是来自servlet的响应不正确,因此没有呈现为图像。保存在磁盘上的文件虽然工作正常。从java servlet的服务PNG不显示
我在做什么错?我是否需要设置更多标题?内容长度?
public void doPost(HttpServletRequest request, HttpServletResponse response) throws IOException{
BufferedImage bfi = null;
OutputStream out = null;
PrintWriter htmlOut = null;
try{
response.setContentType("image/png");
String img64 = (String) request.getParameter("base64image");
byte[] decodedBytes = DatatypeConverter.parseBase64Binary(img64);
bfi = ImageIO.read(new ByteArrayInputStream(decodedBytes));
out = response.getOutputStream();
ImageIO.write(bfi, "png", out);
//Save on disk
File outputfile = new File("webapps/saved.png");
ImageIO.write(bfi , "png", outputfile);
}catch(Exception e){
//ERROR HANDLING
}
finally{
if(bfi != null){
bfi.flush();
}
if(out != null){
out.flush();
out.close();;
}
if(htmlOut != null){
htmlOut.close();
}
}
}
确保设置适当的标题响应为好。 – 2014-10-28 16:20:15
什么是正确的标题? Content-Length是否需要? – gusper 2014-10-28 18:16:35