springboot+vue(Element Ui)图片删除(连同删除数据库中的数据)

前端

    //删除图片
    deleteProductImage(id,realUrl){
        this.$confirm('是否要删除该产品图片?', '提示', {
        confirmButtonText: '确定',
        cancelButtonText: '取消',
        type: 'warning'
      }).then(() => {
        deleteProductImage({ id: id ,realUrl : realUrl}).then(res => {
          if (res.code === 200) {
            this.$message({
              type: 'success',
              message: '删除成功'
            })
            this.getProductImage()
          }
        }).catch(res => {

        })
      }).catch(() => {
        this.$message({
          type: 'info',
          message: '已取消删除'
        })
      })
    },

后端

 //从文件中删除图片,并删除数据库信息
    @GetMapping("/deleteProductImage")
    @ResponseBody
    public ServerResponse delFile(Integer id,String realUrl) {
        //字符串截断,获取图片的名称
        int lastIndexOf = realUrl.lastIndexOf("/");
        String img_path = realUrl.substring(lastIndexOf + 1, realUrl.length());
        //拼接图片的绝对地址
        img_path = "D:\\Project\\manager-api\\src\\main\\resources\\static\\images\\" + img_path;

        File file = new File(img_path);
        //数据库中删除数据
        int i = sProductService.deleteProductImage(id);
        if(i>0){
            if (file.exists()) {//文件是否存在
                if (file.delete()) {//存在就删了
                    return ServerResponse.createServerResponseBySuccess("删除成功");
                } else {
                    return ServerResponse.createServerResponseBySuccess("文件删除失败");
                }
            }else {
                return ServerResponse.createServerResponseByFail("文件不存在");
            }
        }else {
            return ServerResponse.createServerResponseByFail("数据删除失败");
        }
    }

猜你喜欢

转载自blog.csdn.net/KuKu_Nao/article/details/119906389