首页 > 解决方案 > 如何将图像字节从 javascript 发布到 JAX-RS 网络服务并从 imageBytes 数组创建 BufferedImage?

问题描述

我想将图像字节从 Javascript 客户端发送到 JAX-RS Web 服务。我尝试使用 Javascript 函数对图像字节进行编码btoa(),并在服务器端尝试创建一个BufferedImage类似的

ByteArrayInputStream arrayInputStream = new ByteArrayInputStream(imageBytes);
BufferedImage originalImage = ImageIO.read(arrayInputStream);

但是, originalImage 越来越为空。

请你帮助我好吗。

完整代码:

Javascript:

function handleUpload(){
  var input = document.getElementById("imageUploadId");
  var file = input.files[0];
  file.convertToBase64(base64ImageData);
}

function base64ImageData(data){
  if(data){
    var imageBytes = data.split(",")[1];
    imageBytes =  btoa(imageBytes);
  }
}

Java - Jax-RS:

String ImageByteFromrequest ="";
byte[] imageBytes = Base64.decode(ImageByteFromrequest);
ByteArrayInputStream arrayInputStream = new ByteArrayInputStream(imageBytes);
BufferedImage originalImage = ImageIO.read(arrayInputStream);

提前致谢。

标签: javascriptjavaimagejax-rsbufferedimage

解决方案


推荐阅读