0
我用下面的代码编写存在于内存到磁盘的图像:后图像休息服务器
BufferedImage image = SwingFXUtils.fromFXImage(productBrandImage.getImage(), null);
BufferedImage imageRGB = new BufferedImage(image.getWidth(), image.getHeight(), BufferedImage.BITMASK);
Graphics2D graphics = imageRGB.createGraphics();
graphics.drawImage(image, 0, 0, null);
File imgFile = Utilities.constructImagePathForProductBrand(imageName);
ImageIO.write(imageRGB, "png",
imgFile);
graphics.dispose();
并在程序中使用下面的代码图像中盘上传到别处一个REST服务器:
HttpClientBuilder builder = HttpClientBuilder.create();
HttpClient httpClient = builder.build();
HttpPost httpPost = new HttpPost(uploadUrl);
MultipartEntityBuilder entityBuilder = MultipartEntityBuilder.create();
entityBuilder.addPart("filea", new FileBody(filea));
entityBuilder.addPart("fileb", new FileBody(fileb));
final HttpEntity entity = entityBuilder.build();
httpPost.setEntity(entity);
HttpResponse response = httpClient.execute(httpPost);
现在我想直接发布内存中的图像文件到服务器而不先写入磁盘。 (对于某些情况,没有必要将图像写入磁盘。)
我知道MultipartEntityBuilder
有一个addBinaryBody(String name, InputStream stream)
方法,但我没有深入了解流如何工作以使这两部分工作一起。