码迷,mamicode.com
首页 > 其他好文 > 详细

List<MultipartFile>序列化成String和将序列化成String的文件反序列化

时间:2020-01-11 14:59:44      阅读:198      评论:0      收藏:0      [点我收藏+]

标签:list   exce   throw   catch   for   dubbo   解决方法   multi   nes   

场景来源:无法给Dubbo接口传参数,List<MultipartFile> files不支持。

解决方法:Base64将文件序列化为String。Dubbo再解析成List。

List<MultipartFile>转成String:

public String uploadFj(List<MultipartFile> files){
        try {
            
            if(files==null||files.size()==0){
                throw new RuntimeException("附件为空");
            }
            List<Map<String,Object>>list =new ArrayList<Map<String,Object>>();
            for(MultipartFile f:files){
                Map<String,Object>map=new HashMap<String,Object>();
                String filename = f.getOriginalFilename();
                byte[] bytes = f.getBytes();
                map.put("fileName", filename);
                map.put("fileByte", Base64.encodeBase64String(bytes));
                list.add(list.size(),map);
            }
            String jsonfiles = JSONObject.toJSONString(list);
            
            return jsonfiles;
        } catch (Exception e) {
            throw new RuntimeException(e.getMessage());
        }
    }

从序列化后的String提取数据:

public void formatUpload01(String fid, String userid, String username, String businesstag, String fileobj){
         try {
            List<Map> attachList=JSONObject.parseArray(fileobj,Map.class);
            if(attachList!=null && attachList.size()>0){
                String fileid = null;
                for(Map m:attachList){
                    byte[] fileByte=Base64.decodeBase64(m.get("fileByte")==null?"":m.get("fileByte").toString());
                    String fileName=m.get("fileName").toString();
                }
            }
        } catch (Exception e) {
            throw new RuntimeException(e.getMessage());
        }
     }

List<MultipartFile>序列化成String和将序列化成String的文件反序列化

标签:list   exce   throw   catch   for   dubbo   解决方法   multi   nes   

原文地址:https://www.cnblogs.com/whirlwind/p/12179860.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!