钉钉小程序文件上传并返回数据到前端

@ResponseBody
@RequestMapping(value = "/dingding/uploadImages",method = RequestMethod.POST)
public ResultModel uploadImage(@RequestParam Map<String,Object> params, HttpServletRequest request){
    Map<String,Object> resultMap = new HashMap<>();
   //此处对应要转换成StandardMultipartHttpServletRequest,否则没法获取multifile对象请注意"
    StandardMultipartHttpServletRequest httpServletRequest = (StandardMultipartHttpServletRequest) request;
    Iterator<String> iterator = httpServletRequest.getFileNames();
    Boolean isHavePic = false;
    List<Dict> dcts = new ArrayList<>();
    while (iterator.hasNext()) {
        MultipartFile file = httpServletRequest.getFile(iterator.next());
        String fileNames = file.getOriginalFilename();
        String storeName = "", decodeName ="", subfix = "";
        try{
            decodeName = URLDecoder.decode(fileNames, "utf-8");
            subfix = decodeName.substring(decodeName.lastIndexOf("."));
            storeName = UUIDHelper.next() + subfix;
            String path = File_Folder + File.separatorChar + folder_name + File.separatorChar+ storeName;
            File file2 = new File(path);
            if(!file2.getParentFile().exists()){
                file2.getParentFile().mkdirs();
            }
            file.transferTo(file2);
            Dict data = Dict.create()
                    .set("originalFileName", decodeName)//原文件名
                    .set("storeFileName",storeName)//文件上传后的文件名
                    .set("size", file.getSize())//文件大小
                    .set("contentType",subfix)
                    .set("storePath",folder_name + '/' + storeName)//相对路径
                    .set("uploadTime", LocalDateTime.now().toString());
            dcts.add(data);
        }catch (IOException e) {
            throw new CheckedException("文件上传失败");
        }
    }

    return  new ResultModel(true , ResultModel.CODE_SUCCESS,"文件已上传成功!", dcts);
}
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值