我必须将 img 从客户端(JavaScript)发送到服务器端 Jaxrs 实现。
客户端:
function sendRequest()
{
var url = 'http://localhost:8080/MobilePOC/restService/uploadImage';
$("body").append('<canvas id="theCanvas" style="display:none" width="300px"
height="300px"></canvas>');
var canvas = document.getElementById('theCanvas');
var context = canvas.getContext('2d');
var imageObj = new Image();
imageObj.src = "myjpg.jpeg";
context.drawImage(imageObj, 0, 0, 300, 300);
$.post(url, {'image':canvas.toDataURL("image/jpeg"), 'url':'caption'},
function(file){
//Callback code
alert("done");
});
}
在 JAXRS 的服务器端,我正在使用:
它可以工作,但问题是当我将 base64 字符串转换回图像时它不起作用。它正在创建空白图像而不是原始图像。
@POST
@Path("/uploadImage")
@Consumes(MediaType.WILDCARD)
public Response upload(String image) {
System.out.println("In upload:"+image);
Base64 decoder = new Base64();
try {
byte[] imgBytes = decoder.decode(image);
FileOutputStream osf;
osf = new FileOutputStream(new File("C:/yourImage.jpg"));
osf.write(imgBytes);
osf.flush();
osf.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
// store input somewhere
return Response.ok().build();
}
我尝试替换编码字符串中的几个字符但没有成功。