文件上传

15 篇文章 0 订阅
 @PostMapping("/file")
    @ApiOperation(value = "文件上传", notes = "文件上传的方法")
    public ResultData file(HttpServletRequest request, @RequestParam("file") MultipartFile file) {
        String[] FILE_ALLOW_SUFFIX_STRINGS = FILE_ALLOW_SUFFIX_STRING.split(",");
        FILE_ALLOW_SUFFIX = Arrays.asList(FILE_ALLOW_SUFFIX_STRINGS);
        String currentUserId = TokenUtils.getUserIdByRequest(request);
        ResultData resultData = new ResultData().setCode(1).setMsg("上传失败");// 默认上传失败
        // 原始文件名称
        String fileName = file.getOriginalFilename();
        String fileSuffix = "";
        if (fileName.indexOf(".") > -1) {
            fileSuffix = fileName.substring(fileName.lastIndexOf("."));
        }
        // uuid生成新的文件名称
        String fileCode = UUID.randomUUID().toString().replaceAll("-", "") + fileSuffix;
        String fileHref = UPLOAD_FILE_URL.split("static")[1] + fileCode;
        if (FILE_ALLOW_SUFFIX.contains(fileSuffix.toLowerCase().substring(1))) {
            File filePath = new File(UPLOAD_FILE_URL);
            //如果文件夹不存在则创建
            if (!filePath.exists() && !filePath.isDirectory()) {
                filePath.mkdirs();
            }
            try {
                String attachmentId = this.save(currentUserId, fileCode, fileName, fileSuffix, fileHref);
                File newFile = new File(UPLOAD_FILE_URL + fileCode);
                //通过CommonsMultipartFile的方法直接写文件(注意这个时候)
                file.transferTo(newFile);
                Map<String, String> dataMap = new HashMap<>(2);
                dataMap.put("attachmentId", attachmentId);
                dataMap.put("attachmentHref", fileHref);
                resultData.setCode(0).setMsg("上传成功").setData(dataMap);
            } catch (Exception e) {
                e.printStackTrace();
            }
        } else {
            resultData.setMsg("暂不支持此格式的文件上传");
        }
        return resultData;
    }
  @PostMapping("/image")
    @ApiOperation(value = "图片上传", notes = "图片上传的方法")
    public ResultData image(HttpServletRequest request, @RequestParam("file") MultipartFile file) {
        String[] IMG_ALLOW_SUFFIX_STRINGS = IMG_ALLOW_SUFFIX_STRING.split(",");
        IMG_ALLOW_SUFFIX = Arrays.asList(IMG_ALLOW_SUFFIX_STRINGS);
        String currentUserId = TokenUtils.getUserIdByRequest(request);
        ResultData resultData = new ResultData().setCode(1).setMsg("上传失败");// 默认上传失败
        // 原始文件名称
        String fileName = file.getOriginalFilename();
        String fileSuffix = "";
        if (fileName.indexOf(".") > -1) {
            fileSuffix = fileName.substring(fileName.lastIndexOf("."));
        }
        // uuid生成新的文件名称
        String fileCode = UUID.randomUUID().toString().replaceAll("-", "") + fileSuffix;
        String fileHref = UPLOAD_IMG_URL.split("static")[1] + fileCode;
        if (IMG_ALLOW_SUFFIX.contains(fileSuffix.toLowerCase().substring(1))) {
            File filePath = new File(UPLOAD_IMG_URL);
            //如果文件夹不存在则创建
            if (!filePath.exists() && !filePath.isDirectory()) {
                filePath.mkdirs();
            }
            try {
                String attachmentId = this.save(currentUserId, fileCode, fileName, fileSuffix, fileHref);
                File newFile = new File(UPLOAD_IMG_URL + fileCode);
                //通过CommonsMultipartFile的方法直接写文件(注意这个时候)
                file.transferTo(newFile);
                Map<String, String> dataMap = new HashMap<>(2);
                dataMap.put("attachmentId", attachmentId);
                dataMap.put("attachmentHref", fileHref);
                resultData.setCode(0).setMsg("上传成功").setData(dataMap);
            } catch (Exception e) {
                e.printStackTrace();
            }
        } else {
            resultData.setMsg("暂不支持此格式的文件上传");
        }
        return resultData;
    }
 @PostMapping("/uploadImages")
    @ApiOperation(value = "上传多个图片", notes = "上传多个图片")
    public ResultData uploadImages(HttpServletRequest request, @RequestParam(value = "files") MultipartFile[] files) {
        String currentUserId = TokenUtils.getUserIdByRequest(request);
        String[] IMG_ALLOW_SUFFIX_STRINGS = IMG_ALLOW_SUFFIX_STRING.split(",");
        IMG_ALLOW_SUFFIX = Arrays.asList(IMG_ALLOW_SUFFIX_STRINGS);
        ResultData resultData = new ResultData().setCode(1).setMsg("上传失败");// 默认上传失败
        List<String> attachmentIdList = new ArrayList<>();
        try {
            for (MultipartFile file : files) {
                // 原始文件名称
                String fileName = file.getOriginalFilename();
                String fileSuffix = "";
                if (fileName.indexOf(".") > -1) {
                    fileSuffix = fileName.substring(fileName.lastIndexOf("."));
                }
                // uuid生成新的文件名称
                String fileCode = UUID.randomUUID().toString().replaceAll("-", "") + fileSuffix;
                String fileHref = UPLOAD_IMG_URL.split("static")[1] + fileCode;
                if (IMG_ALLOW_SUFFIX.contains(fileSuffix.toLowerCase().substring(1))) {
                    File filePath = new File(UPLOAD_IMG_URL);
                    //如果文件夹不存在则创建
                    if (!filePath.exists() && !filePath.isDirectory()) {
                        filePath.mkdirs();
                    }
                    try {
                        String attachmentId = this.save(currentUserId, fileCode, fileName, fileSuffix, fileHref, null);
                        File newFile = new File(UPLOAD_IMG_URL + fileCode);
                        //通过CommonsMultipartFile的方法直接写文件(注意这个时候)
                        file.transferTo(newFile);
                        attachmentIdList.add(attachmentId);
                    } catch (Exception e) {
                        log.error(e.getMessage());
                        throw new RuntimeException(e.getMessage());
                    }
                } else {
                    resultData.setMsg("暂不支持此格式的文件上传");
                }
            }
            resultData.setCode(0).setMsg("上传成功").setData(attachmentIdList);
        } catch (RuntimeException e) {
            return resultData.setMsg(e.getMessage());
        }
        return resultData;
    }
  @PostMapping("/headicon")
    @ApiOperation(value = "图像上传", notes = "图像上传的方法")
    public ResultData headicon(HttpServletRequest request, @RequestParam("file") MultipartFile file) {
        String[] HEADICON_ALLOW_SUFFIX_STRINGS = HEADICON_ALLOW_SUFFIX_STRING.split(",");
        HEADICON_ALLOW_SUFFIX = Arrays.asList(HEADICON_ALLOW_SUFFIX_STRINGS);
        String currentUserId = TokenUtils.getUserIdByRequest(request);
        ResultData resultData = new ResultData().setCode(1).setMsg("上传失败");// 默认上传失败
        // 原始文件名称
        String fileName = file.getOriginalFilename();
        String fileSuffix = "";
        if (fileName.indexOf(".") > -1) {
            fileSuffix = fileName.substring(fileName.lastIndexOf("."));
        }
        // uuid生成新的文件名称
        String fileCode = UUID.randomUUID().toString().replaceAll("-", "") + fileSuffix;
        String fileHref = UPLOAD_HEADICON_URL.split("static")[1] + fileCode;
        if (HEADICON_ALLOW_SUFFIX.contains(fileSuffix.toLowerCase().substring(1))) {
            File filePath = new File(UPLOAD_HEADICON_URL);
            //如果文件夹不存在则创建
            if (!filePath.exists() && !filePath.isDirectory()) {
                filePath.mkdirs();
            }
            try {
                String attachmentId = this.save(currentUserId, fileCode, fileName, fileSuffix, fileHref);
                File newFile = new File(UPLOAD_HEADICON_URL + fileCode);
                //通过CommonsMultipartFile的方法直接写文件(注意这个时候)
                file.transferTo(newFile);
                Map<String, String> dataMap = new HashMap<>(2);
                dataMap.put("attachmentId", attachmentId);
                dataMap.put("attachmentHref", fileHref);
                resultData.setCode(0).setMsg("上传成功").setData(dataMap);
            } catch (Exception e) {
                e.printStackTrace();
            }
        } else {
            resultData.setMsg("暂不支持此格式的文件上传");
        }
        return resultData;
    }
 @Value("${file-upload.url.img}")
    private String UPLOAD_IMG_URL;

    @Value("${file-upload.url.headicon}")
    private String UPLOAD_HEADICON_URL;

    @Value("${file-upload.url.file}")
    private String UPLOAD_FILE_URL;

   
    @Value("${file-upload.allowSuffix.img}")
    private String IMG_ALLOW_SUFFIX_STRING;
    @Value("${file-upload.allowSuffix.file}")
    private String FILE_ALLOW_SUFFIX_STRING;
    @Value("${file-upload.allowSuffix.headicon}")
    private String HEADICON_ALLOW_SUFFIX_STRING;

 private static List<String> IMG_ALLOW_SUFFIX = new ArrayList<>();
    private static List<String> FILE_ALLOW_SUFFIX = new ArrayList<>();
    private static List<String> HEADICON_ALLOW_SUFFIX = new ArrayList<>();

 @Autowired
    private AttachmentsServer attachmentsServer;
    @Resource
    private SysUserService sysUserService;


file-upload:
  url:
    img: F:/static/img/
    file: F:/static/file/
    headicon: F:/static/headicon/
    qr-code: F:/static/qr-code/

  allowSuffix:
    img: jpg,png,jpeg,bmp
    file: txt,doc,docx,xls,xlsx,ppt,pptx,vsd,pot,pps,rtf,wps,et,dps,pdf,epub
    headicon: jpg,png,jpeg,bmp

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值