前端发送的form-data类型name=“carNumber“的参数后端怎么接收

需求:前端将图片和其他信息一起已form-data类型发送给后端,图片以二进制流的形式,其他信息以key-value的键值对的形式。

举例:

前端发送的form-data类型name=“carNumber“的参数后端怎么接收_第1张图片

 具体荷载:

前端发送的form-data类型name=“carNumber“的参数后端怎么接收_第2张图片

 后端controller层接收的方法

@RequestMapping(value= "uploads/storage",method = RequestMethod.POST)
     public R uploadsStorage(HttpServletRequest request, StorageSupplementDto supplementDto) {
         System.out.println("request=="+request);
         System.out.println("supplementDto=="+supplementDto.toString());
         Map map = commonService.uploads(request,supplementDto);
         return R.ok(map);
     }

使用request和实体类相结合进行接收,因为信息字段过多,注意:formata类型实体类前面不能加@RequestBody注解。如果信息字段少可以直接用request接收,然后用request.getParameter("表单名"),进行接收。

service层

@Override
    public Map uploads(HttpServletRequest request,StorageSupplementDto storageSupplementDto) {
        System.out.println("method uploads==========");
        String location = myConfig.getLocation();
        System.out.println("method uploads location=========" + location);
        Map fileMap = new TreeMap();
        HttpSession session = request.getSession();
        CommonsMultipartResolver multipartResolver = new CommonsMultipartResolver(session.getServletContext());
        //判断 request 是否有文件上传,即多部分请求
        if (multipartResolver.isMultipart(request)) {
            MultipartResolver resolver = new StandardServletMultipartResolver();
            MultipartHttpServletRequest mRequest = resolver.resolveMultipart(request);
            //取得上传文件
            fileMap = mRequest.getFileMap();
        }
        String carNumber = request.getParameter("carNumber");
        System.out.println("=====request.getParameter(carNumber)==="+carNumber);
        
        //图片上传完成,开始准备往入库表插入数据
        Set fileSet = fileMap.keySet();
        for (String key : fileSet) {
            MultipartFile file = fileMap.get(key);
            String s = saveFile(file, location);
            System.out.println("key:" + key + ", 图片地址:" + s);
            if ("carNumberImage".equals(key)) {
                storageSupplementDto.setRoughCarNumberImage(s);
                storageSupplementDto.setTareCarNumberImage(s);
            } else if ("vehicleImage".equals(key)) {
                storageSupplementDto.setRoughVehicleImage(s);
                storageSupplementDto.setTareVehicleImage(s);
            } else if ("tareFloorImage".equals(key)) {
                storageSupplementDto.setTareFloorScaleImage(s);
            } else if ("roughFloorImage".equals(key)) {
                storageSupplementDto.setRoughFloorScaleImage(s);
            } else {
                System.out.println("异常key,key : " + key);
            }
        }
        Map resultMap = recycleStorageService.saveSupplement(storageSupplementDto);
        return resultMap;
    }

你可能感兴趣的:(前端,java)