修改商品时图片的增加与删除

修改商品时,会将原有的图片信息展示,我们的操作可删除可增加,数据库图片的字段:xxx.png,yyy.png,zzz.png

删除,yyy.png这张图片,再增加一张新图片


一、图片上传后得到的图片路径

	//图片上传
	private String getUploadPicFullName(MultipartFile[] pic ,HttpServletRequest request){
		String picFileNameAll = "";
		if(pic == null || pic.length <= 0){
			return picFileNameAll;
		}
		if (pic != null && pic.length > 0) {
			int picsLength = pic.length;
			
			for (int i = 0; i < picsLength; i++) {//这个是for循环
				if(pic[i] != null && !pic[i].getOriginalFilename().equals("")){//编辑时已有的图片会传"",添加图片的input也会带一个""
					String itemPicUploadFileName = imageUploadBizImpl.uploadImage(pic[i], folder, request);
					if (picFileNameAll.equals("")) {
						picFileNameAll = itemPicUploadFileName;
					} else {
						picFileNameAll = picFileNameAll + "," + itemPicUploadFileName;
					}
				}
			}
		}
		return picFileNameAll;
	}


注意在修改时,现有图片上传的 时候会传一个空字符串,此时就不操作


二、执行删除的一系列逻辑

private String getModifyPicFileName(String delPic,String oldPicFileName,String uploadPicFileNameAll){
		//原数 路径据库
		String[] oldPic = oldPicFileName.split(",");
		//原主图路径减去删除的图片路径
		if(delPic != null && !delPic.equals("")){
			String[] picDelNum = delPic.split(",");
			//用户删除时会不按顺序删除,因此需要事先排序,然后转成集合进行删除对应图片
			Arrays.sort(picDelNum);
			List<String> picList = Arrays.asList(oldPic);
			List<String> allPicList = new ArrayList<String>(picList);
			//必须从后往前删,不然下标会弄错
			for(int i = picDelNum.length-1;i >= 0;i--){
				allPicList.remove(Integer.parseInt(picDelNum[i]));
			}
			//去掉删除的图片后留下的图片路径
			String leavePic = StringUtils.join(allPicList.toArray(), ","); 
			//存入修改后的图片路径
			if(uploadPicFileNameAll.equals("")){
				return leavePic;
			}else if(!uploadPicFileNameAll.equals("") && !leavePic.equals("")){
				return uploadPicFileNameAll+","+leavePic;
			}else if(!uploadPicFileNameAll.equals("") && leavePic.equals("")){
				return uploadPicFileNameAll;
			}
		}else{
			if(uploadPicFileNameAll == null || uploadPicFileNameAll.equals("")){
				return oldPicFileName;
			}else{
				return oldPicFileName+","+uploadPicFileNameAll;
			}
			
		}
		return null;
	}


  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值