标题 html5上传多张图片到数据库 ,预览,并加入数据库 后台代码,注意我用的是easyui写的,注意后台数据库图片我的路径是会传到线上的
*ajax转发到后台 * 前台代码在上一篇
Ajax转发到后台
$('#serverbtnSave').bind('click',function(data){
if($("#addServerForm").form('validate')){
//得到div中的数组
var arr = new Array();
$(".imgSrc").each(function() {
arr.push($(this).attr("src"));
});
$.ajax({
url:地址,
data:{
serverId:$("#serverId").val(),
//将其转成json发送到后台
imgaa:JSON.stringify(arr),
},
dataType: 'json',
type: 'post',
success:function(rtn){
$.messager.alert("提示",rtn.message,'info',function(){
if(rtn.success){
//成功之后的事情
}
});
}
});
}
});
controller 代码 其他的多余的·我就不写了,只写关于图片的 可能括号或许什么的有点问题
//增加必须要使用事务管理
@Transactional
@RequestMapping("/insertAuding")
@ResponseBody
public Map<String,Object> insertAuding(String imgaa,Long serverId) {
try{
//将前台传过来的json解析出来
if(StringUtils.isNoneEmpty(imgaa)){
JSONArray jsonArray = JSONArray.parseArray(imgaa);
String mm="";
String [] ss=null;
String [] b2= new String[jsonArray.size()];
String imgFileName="";
for (int i = 0; i < jsonArray.size(); i++) {
String js = (String) jsonArray.get(i);
ss=js.split(";base64,");
b[i]=ss[1];
//得到图片后缀
String end=ss[0].split("data:image/")[1];
//图片名称
imgFileName=UUID.randomUUID()+"."+end;
mm+=imgFileName;
if(i!=jsonArray.size()-1) {
mm += ",";
}
}
//将得到的图片用逗号分开
String[] split = mm.split(",");
for (int i = 0; i < split.length; i++) {
String str = split[i];
if(Base64Convert.GenerateImage(b2[i],uploadPath+"/"+str)){
ad.setPayImg(mm);
}
}
}
serverPayAudingMapper.insertSelective(ad);
}catch (ParseException e) {
TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
return this.setJson(false, "失败!!", null);
}
return this.setJson(true, "成功!!", null);
帮助类 我的路径是在application.properties默认存到D盘的 uploadPath=D:
帮助类:Base64Convert
public static boolean GenerateImage(String imgStr, String imgFilePath) {// 对字节数组字符串进行Base64解码并生成图片
if (imgStr == null) // 图像数据为空
return false;
sun.misc.BASE64Decoder decoder = new sun.misc.BASE64Decoder();
try {
// Base64解码
byte[] bytes = decoder.decodeBuffer(imgStr);
for (int i = 0; i < bytes.length; ++i) {
if (bytes[i] < 0) {// 调整异常数据
bytes[i] += 256;
}
}
// 生成jpeg图片
OutputStream out = new FileOutputStream(imgFilePath);
out.write(bytes);
out.flush();
out.close();
return true;
} catch (Exception e) {
return false;
}
}
帮助类:baseController
public Map<String,Object> setJson(boolean success, String message, Object entity) {
Map<String, Object> json = new HashMap<String, Object>();
json.put("success", Boolean.valueOf(success));
json.put("message", message);
json.put("entity", entity);
return json;