ajax提交图片流,img显示
特性:img src换了就立即重新加载图片
图片的加载:
1,http://www.jb51.net/article/48717.htm
代码如下:
<img src=“http://www.jwzzsw.com/images/log.gif”/>
2,也可以这样显示:
复制代码 代码如下:
在上面的Data URI中,data表示取得数据的协定名称,image/gif是数据类型名称,base64 是数据的编码方法,逗号后面就是这个image/gif文件base64编码后的数据
<img src=“data:image/gif;base64,R0lGODlhAgACAIAAAP///wAAACwAAAAAAgACAAACAoRRADs=”/>
data:image/png;base64,
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
Java接收前台返回的图片base64编码只要对base64编码部分的数据解码然后转成字节流即可,逗号后的
参考:
http://blog.csdn.net/simba_cheng/article/details/52295169
代码例子:
// 图片选择改变事件
function inputchange(tag){
alert(1);
var inputTag = 'file' + tag;
var file = document.getElementById(inputTag);
if(window.FileReader){//chrome,firefox7+,opera,IE10+
alert(2);
oFReader = new FileReader();
oFReader.readAsDataURL(file.files[0]);
oFReader.onload = function (oFREvent) {
alert(3);
uploadImage(oFREvent.target.result,tag);
alert(4);
// oFREvent.target.result 结果就是base64的数据
};
}
}
// 图片上传
var jsonshuzu={"imgName":"111.png","bluckname":"telesale","imgType":"identityFrontPicUrl","orderNo":"001"};
function uploadImage(imageData,tag){
alert(5);
$.ajax({
url: '${ctx}/itm/weixin/additional1.action',
data: {
imgData: imageData ,// 图片数据流
jsonsImg:JSON.stringify(jsonshuzu)
},
// processData : false,
// contentType : false,
dataType: 'json',
type: 'post',
success: function(data) {
var dataJsonObject = JSON.parse(data);
if (dataJsonObject.returnCode == 'A0001' ) {
var img = '#imgsrc';
var imgurl=dataJsonObject.result.imgUrl;
var fileNameForm=dataJsonObject.result.fileNameForm;
$(img).attr('src','${ctx}/itm/weixin/getObject.action?'+imgurl);
$("#fNameForm").val(fileNameForm);
}else{
alert('图片上传失败!');
}
},
error: function(xhr, type, errorThrown) {
alert('网络异常,请稍后再试!');
}
});
}
Java后台:
public String additional1() throws FileNotFoundException, IOException, NoSuchAlgorithmException, InvalidKeyException, XmlPullParserException ,NoSuchMethodException,IllegalAccessException,InvocationTargetException,Exception{
//InputStream is = new FileInputStream(fileName.getPath());
InputStream sbs = null;
System.currentTimeMillis();
//获取ajax传过来的json参数
imgInfoReq=(ImgInfoReq)JSONObject.toBean(JSONObject.fromObject(jsonsImg),ImgInfoReq.class);
//形成新的随机图片名称
fileNameForm = imgInfoReq.getImgName() + System.currentTimeMillis();
fileNameForm = Base64Utils.byteArrayToBase64(fileNameForm.getBytes());
String endpfrx = imgInfoReq.getImgName().substring(imgInfoReq.getImgName().indexOf("."));
fileNameForm = fileNameForm + endpfrx;
//获取图片流
HttpServletRequest request = ServletActionContext.getRequest();
imgData = request.getParameter("imgData");
byte[] imgd= generateImage(imgData.substring(imgData.indexOf(",")+1));
//保存图片
JSONObject finalJSONObject = new JSONObject();
if (imgData != null) {
sbs = new ByteArrayInputStream(imgd);
Minoperator.saveObject(sbs, imgInfoReq.getBluckname(), fileNameForm);
}
else{
//Minoperator.saveObject(is,fileNameFileName);
}
finalJSONObject.put("returnCode", "1");
//数据库是否有此订单的图片数据
WeixinAdditionalInfo additionalInfo1 = null;//(WeixinAdditionalInfo)baseService.findObject(WeixinAdditionalInfo.class,orderNo);
String imgType= imgInfoReq.getImgType();
String imgType0=imgType.charAt(0)+"";
String itype=imgType0.toUpperCase()+imgType.substring(1, imgType.length());
String setMethodName = "set" +itype;
Method setMethod;
Class demo =Class.forName("com.itm.weixin.entity.WeixinAdditionalInfo");
setMethod=demo.getMethod(setMethodName,new Class[]{String.class});
//数据库没有此订单的图片数据就保存
if(additionalInfo1==null){
additionalInfo1= new WeixinAdditionalInfo();
additionalInfo1.setOrderNo(imgInfoReq.getOrderNo());
setMethod.invoke(additionalInfo1,"bluckname="+imgInfoReq.getBluckname()+"&fname="+fileNameForm);
baseService.save(additionalInfo1);
}else{
//数据库有此图片的数据就更新
setMethod.invoke(additionalInfo1,"bluckname="+imgInfoReq.getBluckname()+"&fname="+fileNameForm);
baseService.update(additionalInfo1);
}
System.out.println("进入补充资料" + fileNameFileName);
System.out.println("进入补充资料1111" + imgData);
BaseResp br = new BaseResp();
br.setReturnCode(WeixinErrorMsg.SUCCESS.getCode());
br.setReturnMsg(WeixinErrorMsg.SUCCESS.getText());
ImgResp imgResp= new ImgResp();
Imginfo imginfo = new Imginfo();
imginfo.setImgUrl("bluckname="+imgInfoReq.getBluckname()+"&fname="+fileNameForm);
imginfo.setFileNameForm(fileNameForm);
imgResp.setResult(imginfo);
imgResp.setReturnCode(WeixinErrorMsg.SUCCESS.getCode());
imgResp.setReturnMsg(WeixinErrorMsg.SUCCESS.getText());
//测试数据
QueryOrderDetailResp queryOrderDetailResp =new QueryOrderDetailResp();
QueryOrderDetailResp qp =new QueryOrderDetailResp();
queryOrderDetailResp.setOrderNo("1111");
queryOrderDetailResp.setState("1");
QueryOrderDetail queryOrderDetail = new QueryOrderDetail();
AdditionalInfo additionalInfo =new AdditionalInfo();
additionalInfo.setGongzuozhengPicUrls("2222");
queryOrderDetail.setAdditionalInfo(additionalInfo);
List<AdditionalInfoRemarks> additionalInfoRemarks =new ArrayList<AdditionalInfoRemarks>();
AdditionalInfoRemarks additionalInfoRemark =new AdditionalInfoRemarks();
additionalInfoRemark.setRemark("test");
additionalInfoRemarks.add(additionalInfoRemark);
queryOrderDetail.setAdditionalInfoRemarks(additionalInfoRemarks);
ApplyInfo applyInfo= new ApplyInfo();
applyInfo.setApplyAmount(new BigDecimal("666"));
queryOrderDetail.setApplyInfo(applyInfo);
BaseInfo baseInfo =new BaseInfo();
baseInfo.setEmail("[email protected]");
queryOrderDetail.setBaseInfo(baseInfo);
CareerInfo careerInfo = new CareerInfo();
careerInfo.setCompany("cpny");
queryOrderDetail.setCareerInfo(careerInfo);
ContactInfo contactInfo =new ContactInfo();
contactInfo.setContactPerson("lili");
queryOrderDetail.setContactInfo(contactInfo);
CreditInfo creditInfo =new CreditInfo();
creditInfo.setBankPicUrls("/url/img");
queryOrderDetail.setCreditInfo(creditInfo);
List<PolicyInfo> policyInfos =new ArrayList<PolicyInfo>();
PolicyInfo policyInfo =new PolicyInfo();
//policyInfo.setInputUserid("10");
policyInfos.add(policyInfo);
queryOrderDetail.setPolicyInfo(policyInfos);
queryOrderDetailResp.setResult(queryOrderDetail);
//返回图片保存结果
result= JSONObject.fromObject(imgResp).toString();//toJSONString(queryOrderDetailResp); // = finalJSONObject.toJSONString();
String re ="{\"result\":{\n" +
"\t\t\t \"baseInfo\":{\"liveAddress\":\"\",\"tenementCity\":\"\",\"homePhone\":\"\",\"tenementAddress\":\"\",\"qqAccount\":\"\",\"hasTenement\":\"\",\"liveCity\":\"\",\"monthSalary\":\"\",\"educationLevel\":\"\",\"marriage\":\"\",\"id\":\"1\",\"weixinAccount\":\"\",\"tenementType\":\"\",\"email\":\"\",\"hasCar\":\"\",\"liveStarttime\":\"2017-10-13 10:49:59\"},\n" +
"\t\t\t \"contactInfo\":{\"immediateFamilyIdcard\":\"\",\"postAddress\":\"\",\"spousePhone\":\"\",\"contactPerson\":\"\",\"contactPersonPhone\":\"\",\"getProductWay\":\"\",\"immediateFamilyPhone\":\"\",\"contactPersonRelation\":\"\",\"spouse\":\"\",\"nonImmediateFamilyName\":\"\",\"nonImmediateFamilyRelation\":\"\",\"immediateFamilyName\":\"\",\"spouseIdcard\":\"\",\"nonImmediateFamilyPhone\":\"\",\"id\":\"1\",\"immediateFamilyRelation\":\"\",\"isFamilyKnow\":\"\",\"marryDate\":\"\"},\n" +
"\t\t\t \"policyInfo\":[{\"actualYear\":\"\",\"policyName\":\"3\",\"inputUserid\":\"\",\"shouldYear\":\"1\",\"inputDate\":\"\",\"paymentType\":\"\",\"lifeInsuranceYearSum\":\"\",\"inputOrgId\":\"\",\"monthAmt\":22,\"useDate\":\"\",\"policyCount\":\"\",\"policyType\":\"1\",\"insuranceName\":\"\",\"id\":\"1\",\"policyIndex\":\"\"},{\"actualYear\":\"\",\"policyName\":\"3\",\"inputUserid\":\"\",\"shouldYear\":\"2\",\"inputDate\":\"\",\"paymentType\":\"\",\"lifeInsuranceYearSum\":\"\",\"inputOrgId\":\"\",\"monthAmt\":33,\"useDate\":\"\",\"policyCount\":\"\",\"policyType\":\"2\",\"insuranceName\":\"\",\"id\":\"2\",\"policyIndex\":\"\"}],\n" +
"\t\t\t\t\t \"additionalInfo\":{\"otherIdentityPicUrl\":\"\",\"otherPicUrl\":\"\",\"loanPicUrls\":\"\",\"juzhuzhengPicUrls\":\"\",\"creditCardPicUrls\":\"\",\"hukoubenPicUrls\":\"\",\"gongzuozhengPicUrls\":\"\",\"identityFrontPicUrl\":\"bluckname=test&imgName=MTExLnBuZzE1MDc3MDkzNTkxNzI=.png\",\"identityBackPicUrl\":\"\",\"marriageCertificatePicUrls\":\"\",\"zichanLetterPicUrls\":\"\",\"id\":\"4\",\"shouruLetterPicUrls\":\"\"},\n" +
"\t\t\t \"additionalInfoRemarks\":[{\"dealUserid\":\"223366\",\"createTime\":\"2017-10-13 10:49:59\",\"dealUsername\":\"1\",\"remark\":\"222\",\"id\":\"4\"},{\"dealUserid\":\"223366\",\"createTime\":\"2017-10-13 14:36:04\",\"dealUsername\":\"2\",\"remark\":\"33\",\"id\":\"5\"}],\n" +
"\t\t\t\t\t \"applyInfo\":{\"loanTerm\":\"\",\"purpose\":\"\",\"id\":\"1\",\"applyAmount\":0},\n" +
"\t\t\t \"careerInfo\":{\"jobName\":\"\",\"reserveFundsRadix\":\"\",\"salaryDate\":\"2017-10-13 10:49:59\",\"companyCity\":\"\",\"companyType\":\"\",\"hasSocialSecurity\":\"\",\"industry\":\"\",\"jobLevel\":\"\",\"industryForth\":\"\",\"salaryWithoutTax\":0,\"employeeType\":\"\",\"companyPhone\":\"\",\"industrySecond\":\"\",\"companyAddress\":\"\",\"industryThird\":\"\",\"company\":\"\",\"id\":\"1\",\"department\":\"\",\"socialSecurityRadix\":\"\",\"employeeAmount\":\"\"},\n" +
"\t\t\t \"creditInfo\":{\"bankPicUrls\":\"\",\"peopleBankPicUrls\":\"\",\"reserveFundsPicUrls\":\"\",\"id\":\"18\"}},\n" +
"\t\t\t \"returnCode\":\"A0001\",\"returnMsg\":\"成功\",\"orderNo\":\"A001\",\"state\":\"\",\"isEiditAble\":\"1\"}";
qp=(QueryOrderDetailResp)JSONObject.toBean(JSONObject.fromObject(re),QueryOrderDetailResp.class);
return SUCCESS;
}
public static byte[] generateImage(String imgStr) {
if (imgStr == null) // 图像数据为空
return null;
BASE64Decoder decoder = new BASE64Decoder();
try {
byte[] b = decoder.decodeBuffer(imgStr);// Base64解码
for (int i = 0; i < b.length; ++i) {
if (b[i] < 0) {// 调整异常数据
b[i] += 256;
}
}
//// 生成jpeg图片
//OutputStream out = new FileOutputStream(path);
//out.write(b);
//out.flush();
//out.close();
return b;
} catch (Exception e) {
return null;
}
}