whyclxw
2025-06-14 eb9df0f9e9b91757f82a6211a74b996629860f53
编辑多个和单个图片上传,删除图片
3个文件已修改
131 ■■■■ 已修改文件
src/main/java/com/whyc/controller/BomAcceptanceController.java 23 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/whyc/service/BomAcceptanceService.java 76 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/whyc/util/FileUtil.java 32 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/whyc/controller/BomAcceptanceController.java
@@ -52,9 +52,22 @@
        return service.updateBomAcceptance(bomAcceptance);
    }
    /*@ApiOperation(value = "编辑单个图片上传")
    @PostMapping("updatePic")
    public Response updatePic(@RequestBody BomAcceptance bomAcceptance){
        return service.updateBomAcceptance(bomAcceptance);
    }*/
    @ApiOperation(value = "编辑单个图片上传")
    @PostMapping("updateDevPic")
    public Response updateDevPic(@RequestParam(required = false) MultipartFile filePic,@RequestParam int num,@RequestParam int picNum,@RequestParam(required = false) String picUrl) throws IOException {
        return service.updateDevPic(filePic,num,picNum,picUrl);
    }
    @ApiOperation(value = "编辑多个图片上传")
    @PostMapping("updatePartPic")
    public Response updatePartPic(@RequestPart(required = false) List<MultipartFile> multipartFileList,@RequestParam(required = false) String picUrl) throws IOException {
        return service.updatePartPic(multipartFileList,picUrl);
    }
    @ApiOperation(value = "删除图")
    @PostMapping("delPic")
    public Response delPic(@RequestParam int num,@RequestParam int picNum,@RequestParam String picUrl){
        service.delPic(num,picNum,picUrl,"");
        return new Response().set(1,true,"删除图成功");
    }
}
src/main/java/com/whyc/service/BomAcceptanceService.java
@@ -9,6 +9,7 @@
import com.whyc.pojo.BOMFeedback;
import com.whyc.pojo.BomAcceptance;
import com.whyc.pojo.DefectiveProducts;
import com.whyc.util.ActionUtil;
import com.whyc.util.CommonUtil;
import com.whyc.util.FileUtil;
import org.springframework.beans.factory.annotation.Autowired;
@@ -165,4 +166,79 @@
        mapper.update(bomAcceptance,wrapper);
        return new Response().set(1,true,"编辑成功");
    }
   //删除图
    public void delPic(int num, int picNum,String picUrl,String newPicUrl) {
        String rootFile = CommonUtil.getRootFile();//主路径
        UpdateWrapper wrapper=new UpdateWrapper();
        wrapper.eq("num",num);
        if(picNum==1){
            wrapper.set("dev_picleft",newPicUrl);
        }
        if(picNum==2){
            wrapper.set("dev_picright",newPicUrl);
        }
        if(picNum==3){
            wrapper.set("dev_picfront",newPicUrl);
        }
        if(picNum==4){
            wrapper.set("dev_picback",newPicUrl);
        }
        if(picNum==5){
            wrapper.set("spare_picpart",newPicUrl);
        }
        if(picNum==6){
            wrapper.set("bom_agreement",newPicUrl);
        }
        int flag=mapper.update(null,wrapper);
        if(flag>0){
            rootFile=rootFile.replace("doc_file","");
            //删除图片
            FileUtil.deleteFile(new File(rootFile+picUrl));
        }
    }
    //编辑单个图片上传
    public Response updateDevPic(MultipartFile filePic, int num,int picNum,String picUrl) throws IOException {
        Date date = new Date();
        long time = date.getTime();
        String rootFile = CommonUtil.getRootFile();
        String devDirSuffix = "acceptance_bom" + File.separator + time + File.separator+ "dev" + File.separator;
        String devDir = rootFile + devDirSuffix;
        //后面图
        if(filePic!=null){
            //存储文件
            String originalFilename = filePic.getOriginalFilename();
            String fileName = originalFilename.substring(0, originalFilename.lastIndexOf("."));
            String suffix = originalFilename.substring(originalFilename.lastIndexOf("."));
            String path = devDir + fileName + suffix;
            createFilefolderIFNotExist(path);
            filePic.transferTo(new File(path));
            String devFile="doc_file" + File.separator + devDirSuffix+originalFilename;
            //删除旧的
            delPic(num,picNum,picUrl,devFile);
            return new Response().set(1,true,"上传新图片成功");
        }else{
            return new Response().set(1,false,"图片不存在");
        }
    }
    //编辑多个图片上传
    public Response updatePartPic(List<MultipartFile> multipartFileList, String picUrl) throws IOException {
        String rootFile = CommonUtil.getRootFile();
        rootFile=rootFile.replace("doc_file","");
        //配件存储
        if(multipartFileList!=null && multipartFileList.size()!=0){
            for (int i = 0; i < multipartFileList.size(); i++) {
                MultipartFile multipartFile = multipartFileList.get(i);
                //存储文件
                String originalFilename = multipartFile.getOriginalFilename();
                String fileName = originalFilename.substring(0, originalFilename.lastIndexOf("."));
                String suffix = originalFilename.substring(originalFilename.lastIndexOf("."));
                String sparePath = rootFile+picUrl + fileName + suffix;
                File file = new File(sparePath);
                multipartFile.transferTo(file);
            }
            return new Response().set(1,true,"上传成功");
        }else{
            return new Response().set(1,false,"图片不存在");
        }
    }
}
src/main/java/com/whyc/util/FileUtil.java
@@ -78,22 +78,26 @@
            System.out.println("文件删除失败,请检查文件是否存在以及文件路径是否正确");
            return false;
        }
        //获取目录下子文件
        File[] files = file.listFiles();
        //遍历该目录下的文件对象
        for (File f : files) {
            //判断子目录是否存在子目录,如果是文件则删除
            if (f.isDirectory()) {
                //递归删除目录下的文件
                deleteFile(f);
            } else {
                //文件删除
                f.delete();
                //打印文件名
        if(file.isDirectory()){
            //获取目录下子文件
            File[] files = file.listFiles();
            //遍历该目录下的文件对象
            for (File f : files) {
                //判断子目录是否存在子目录,如果是文件则删除
                if (f.isDirectory()) {
                    //递归删除目录下的文件
                    deleteFile(f);
                } else {
                    //文件删除
                    f.delete();
                    //打印文件名
                }
            }
            //文件夹删除
            file.delete();
        }else{
            file.delete();
        }
        //文件夹删除
        file.delete();
        return true;
    }