(1)getBase64(imgPath);//path为img路径
(2)function getBase64(imgPath) { //图片转base64
function getBase64Image(img, width, height) { //width、height调用时传入具体像素值,控制大小 ,不传则默认图像大小
var canvas = document.createElement("canvas");
canvas.width = width ? width : img.width;
canvas.height = height ? height : img.height;
var ctx = canvas.getContext("2d");
ctx.drawImage(img, 0, 0, canvas.width, canvas.height);
var dataURL = canvas.toDataURL("image/jpeg");
setHeadImg(dataURL.split(",")[1]);
//canvas.toDataURL("image/jpeg");得到data:image/jpeg;base64,base64值
//Hbuilder打印base64时会打印不全base64值,巨坑
//alert(canvas.width + "- " + canvas.height + "- " + dataURL);
return dataURL;
}
var image = new Image();
image.crossOrigin = 'use-credentials';//new Image().crossOrigin为跨域服务
image.src = imgPath;
if(imgPath) {
image.onload = function() {
getBase64Image(image);
}
}
}
(3)var username = "haoranhaoshi";//提交给服务端的图片名称
var setHeadImg = function(imgStr) {//ajax上传base64
var soap = "<soap:Envelope xmlns:soap='http://schemas.xmlsoap.org/soap/envelope/'><soap:Body>" +
"<ns:" + "setHeadImg" + " xmlns:ns='http://webservice.jobWanted.com/'>" +
"<" + "imgStr" + ">" + imgStr + "</" + "imgStr" + ">" + "<" + "username" + ">" + username + "</" + "username" + ">" +
"</ns:" + "setHeadImg" + "></soap:Body></soap:Envelope>";
$.ajax({
type: "post",
url: localStorage.methodFUrl,
data: soap,
datatype: "xml",
contentType: "text/xml;charset=utf-8",
success: function(result) {//上传成功后的处理
var returnInfo = result.getElementsByTagName("return")[0].firstChild.nodeValue;
},
error: function(msg) {
console.log("Fail:setHeadImg");
}
});
}
(4)import sun.misc.BASE64Decoder;
public boolean setHeadImg(@WebParam(name = "imgStr") String imgStr,//base64转图片并保存
@WebParam(name = "username") String username) {
System.out.println(imgStr);
if (imgStr == null)
return false;
BASE64Decoder decoder = new BASE64Decoder();
try {
byte[] b = decoder.decodeBuffer(imgStr);
for (int i = 0; i < b.length; ++i) {
if (b[i] < 0) {
b[i] += 256;
}
}
OutputStream out = new FileOutputStream("D:/jobWantedImg/headImg/"
+ username + ".jpg");
out.write(b);
out.flush();
out.close();
return true;
} catch (Exception e) {
return false;
}
}