SpringMVC实现图片删除功能

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/yswKnight/article/details/79789743

SpringMVC实现图片删除功能


页面

当点击重新上传的时候,这两张图片不仅从页面清除,还要从上传的根路径中删除
这里写图片描述

前端代码

html页面
<div class="upload-cardid">
      <h3 class="a-cardid">1、身份证扫描件</h3>
      <div class="cardid-pic fn-clear">
         <div class="cardid-pos">
             <div class="cardid-pos-con">
                <img class="layui-upload-img" src="" id="cardFrontImg" height="234px" width="382px" style="display: none">
                <input type="hidden" id="cardFrontPicture" >
                <div id="Front">
                    <i id="cardFrontPic" name="cardFrontPic"></i>
                    <p>(正面)</p>
                    <p id="cardFrontText"></p>
                </div>
             </div>
         </div>
         <div class="cardid-neg">
             <div class="cardid-neg-con">
                 <img class="layui-upload-img" src="" id="cardBackImg" height="234px" width="382px" style="display: none">
                  <input type="hidden" id="cardBackPicture" >
                  <div id="Back">
                       <i  id="cardBackPic" name="cardBackPic"></i>
                       <p>(反面)</p>
                       <p id="cardBackText"></p>
                  </div>
              </div>
          </div>
        </div>
    <div class="a-dased-b"></div>
    <!--这里省略营业执照的html -->
</div>
<div class="license-btn">
    <span class="license-btn-y" id="saveBtn">确认</span>
    <span class="license-btn-n" id="resetBtn">重新上传</span>
</div>
js代码
        /**
         * 重新上传
         */
        $("#resetBtn").click(function () {
            //获取上传到服务器中到照片虚拟地址
            var cardFrontPic=$("#cardFrontPicture").val();
            var cardBackPic=$("#cardBackPicture").val();
            var businessLicensePic=$("#businessLicensePicture").val();
            //css样式,请忽略
            $('#cardFrontImg').attr('style','display:none');
            $('#Front').attr('style','display:block');
            $('#cardBackImg').attr('style','display:none');
            $('#Back').attr('style','display:block');
            $('#businessLicenseImg').attr('style','display:none');
            $('#Business').attr('style','display:block');
            //异步删除
            $.ajax({
                type: "POST",
                url: "${ctx}/userInfoApply/fileDelete",
                data:{cardFrontPic:cardFrontPic,
                    cardBackPic:cardBackPic,
                    businessLicensePic:businessLicensePic
                },
                dataType: 'json',
                success: function (data) {
                    //若删除成功,将当前页面的值都清除掉
                    if(data.result=="success"){
                        $("#cardFrontPicture").val("");
                        $("#cardBackPicture").val("");
                        $("#businessLicensePicture").val("");
                    }
                    //失败的提示
                },
                error:function (){
                    layer.msg("服务器异常,请稍后重试!",{icon: 2});
                    setInterval(function(){
                        window.location.href="${ctx}/userInfoApply/resetFail";
                    },1000)
                }
            });
        });

后端代码:

    /**
     * 图片删除
     * @author 王永圣
     * @throws Exception
     * @return str
     */
    @RequestMapping(value = "/fileDelete",method = RequestMethod.POST)
    public @ResponseBody Object fileDelete(@RequestParam(value = "cardFrontPic",required = false)String cardFrontPic,
                                           @RequestParam(value = "cardBackPic",required = false) String cardBackPic,
                                           @RequestParam(value = "businessLicensePic",required = false) String businessLicensePic){
        Map<String, Object> map = new HashMap<String, Object>();
        try {
            //将接受到的三个图片地址放在数组中
            String [] imgArray={cardFrontPic,cardBackPic,businessLicensePic};

            //从配置文件中获取文件存放位置:如:/Users/yswKnight/Desktop/image/
            ReadProperties rp = new ReadProperties("/ApplicationResources.properties");
            String filePath= (String) rp.getProperty("uploadimage.path");
            //将数组中的三个图片循环查看,如果有值,就删除图片,若没有,就跳出循环
            for (String imgName:imgArray) {
                //若数组中有空的,就让他直接退出循环,返回前端结果
                if(imgName==null||imgName.equals("")){
                    map.put("result","null");
                    return map;
                }
                //图片文件夹地址=获取到的文件地址+日期地址:如path=/Users/yswKnight/Desktop/image/2018/03/30/
                //如:这里获取到的imgName=pic/2018/03/30/fbefff0f84824c9e9acf95dca3684109.jpeg
                String path=filePath+imgName.substring(4,15);
                //截取文件名称
                String fileName=imgName.substring(15);
                //到上面截取的路径+路径名下去看,是否有这个图片
                File targetFile = new File(path,fileName);
                //如果存在,就删除
                if(targetFile.exists()){
                    boolean isDelete = targetFile.delete();
                    if(isDelete){
                        map.put("result","success");
                    }else{
                        map.put("result","fail");
                    }
                }else{
                    map.put("result","fail");
                }
            }

        } catch (Exception e) {
            e.printStackTrace();
            map.put("result","fail");
        }finally {
            return map;
        }
    }

删除成功

删除成功后 根路径照片 也相应删除
这里写图片描述

猜你喜欢

转载自blog.csdn.net/yswKnight/article/details/79789743