使用Jetty 9.4.21.v20190926,我运行了一个自定义的servlet(一个WAR文件),它能够生成如下图像:
通过以下代码:
@Override
protected void doGet(HttpServletRequest httpReq,HttpServletResponse httpResp) throws ServletException,IOException {
BufferedImage image = new BufferedImage(512,512,BufferedImage.TYPE_INT_RGB);
Graphics2D g = image.createGraphics();
// ...drawing code skipped here...
g.dispose();
httpResp.setStatus(HttpServletResponse.SC_OK);
httpResp.setContentType("image/png");
ImageIO.write(image,"png",httpResp.getOutputStream());
}
这很好用,现在我想向我的servlet添加另一个功能:uploading the same image by HTTP POST to another website(我将通过每小时进行一次cronjob调用我的servlet上的URL来触发上传。)
我了解,我应该使用MultiPartContentProvider和以下代码:
MultiPartContentProvider multiPart = new MultiPartContentProvider();
multiPart.addFilePart("attached_media","img.png",new PathContentProvider(Paths.get("/tmp/img.png")),null);
multiPart.close();
但是我不想将生成的图像保存为临时文件。
相反,我想使用BytesContentProvider或也许使用InputStreamContentProvider…,但是如何通过ImageIO.write()
通话结婚?