zoukankan      html  css  js  c++  java
  • List<MultipartFile>序列化成String和将序列化成String的文件反序列化

    场景来源:无法给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());
            }
         }
  • 相关阅读:
    HTTP解析
    Linux(CentOS)常用命令
    Windows下虚拟Linux
    国内静态文件CDN服务介绍 国内js公共库
    吐槽一下csdn和博客园
    项目托管 网站 小记
    微软2013年校园实习生招聘笔试题及答案
    最近在折腾VPS(持续完善)
    spring MVC +freemarker + easyui 实现sql查询和执行小工具总结
    Hessian 接口使用示例总结
  • 原文地址:https://www.cnblogs.com/whirlwind/p/12179860.html
Copyright © 2011-2022 走看看