SpringBoot动态获取上传文件地址和附件上传

1 yml文件配置

com:
  js:
    localFilePath:
      D://jsStatic
    staticFile:
      /static

2 上传地址获取

/**
     * 根据yml文件的配置,获取图片的存储路径
     */
    @Value("${com.js.localFilePath}")
    String saveurl;
    @Value("${com.js.staticFile}")
    String fileurl;

3上传

@RequestMapping(value = "suggestion", method = {RequestMethod.POST})
    public ResultData addSuggestion(
            @RequestParam(value = "files") MultipartFile[] files, String data,
            HttpServletRequest request, HttpServletResponse res)

    {
        try {
            
            //文件的保存路径
            String savePath = saveurl.replace("//", "\\")+fileurl.replace("/", "\\")+"\\";
            //File filedir = new File("D:\\jsStatic\\static");
            
            //如果文件夹不存在,则创建文件夹
            File filedir = new File(saveurl.replace("//", "\\\\")+fileurl.replace("/", "\\\\"));
            if(!filedir.exists()){
                filedir.mkdirs();                
            }    
            
            List<String> urls = new LinkedList<String>();
            if (null != files && files.length > 0) {
                // 遍历并保存文件
                for (MultipartFile file : files) {
                    String fileName = file.getOriginalFilename();
                    String suffix = fileName.substring(fileName
                            .lastIndexOf("."));
                    fileName = UUID.randomUUID() + suffix;
                    try {
                        file.transferTo(new File(savePath + fileName));
                    } catch (IllegalStateException e) {
                        e.printStackTrace();
                        // 保存失败,删除之前保存的文件
                        for (int i = 0; i < urls.size(); i++) {
                            deleteFile(urls.get(i));
                        }
                        String code = UUID.randomUUID().toString();
                        log.error(code, e);
                        return new ResultData(false, "500", "图片保存异常-" + code);
                    } catch (IOException e) {
                        e.printStackTrace();
                        // 保存失败,删除之前保存的文件
                        for (int i = 0; i < urls.size(); i++) {
                            deleteFile(urls.get(i));
                        }
                        String code = UUID.randomUUID().toString();
                        log.error(code, e);
                        return new ResultData(false, "500", "图片保存异常-" + code);
                    }
                    urls.add(savePath + fileName);
                }
            }

猜你喜欢

转载自blog.csdn.net/zzqtty/article/details/81094960
今日推荐