2020-08-04

标题 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;
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值