日期:2014-05-16  浏览次数:20348 次

java中,图片的base64码在js中进行编码传递到后台中再进行解码并生成图片代码示例
java中,图片的base64编码作为参数从js传递到后台中再进行解码并生成图片,相关代码示例如下:

js部分:
action1 = strAction_ajcl+"?method=base64ToIo";  //action1为访问的url
var xmlhttp2 = new ActiveXObject("Msxml2.XMLHTTP");
xmlhttp2.Open("POST",action1,true);
xmlhttp2.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
//strbase64date为图片debase64源码
var endcode = encodeURIComponent(strbase64date);//进行编码
//endcode为编码后的base64
xmlhttp2.Send("strBase64="+endcode);
xmlhttp2.onreadystatechange = function() {
if (xmlhttp2.readyState == 4) {
if (xmlhttp2.status == 200) {
if (xmlhttp2.responseText == 1) {
alert("照相成功!");
}
}
}
}


java部分:

String str = request.getParameter("strBase64");//str为接收的base64
String fileName = path1 + strname; // path1为存放的路径,strname为文件名
byte[] bytes = new BASE64Decoder().decodeBuffer(str); // 将base64解码后将字符串放到byte数组
ByteArrayInputStream in = new ByteArrayInputStream(bytes);
byte[] buffer = new byte[1024];
File logosavedir = new File(path1);// path1为存放的路径
if (!logosavedir.exists()) {// 如果不存在文件夹,则自动生成
logosavedir.mkdirs();
}
FileOutputStream out = new FileOutputStream(fileName);
int bytesum = 0;
int byteread = 0;
while ((byteread = in.read(buffer)) != -1) {
bytesum += byteread;
out.write(buffer, 0, byteread); // 文件写操作
out.flush();
}
out.close();