前端发送的form-data类型namecarNumber的参数后端怎么接收
目录
前端发送的form-data类型name=“carNumber“的参数后端怎么接收
需求:前端将图片和其他信息一起已form-data类型发送给后端,图片以二进制流的形式,其他信息以key-value的键值对的形式。
举例:
具体荷载:
后端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<String,Object> map = commonService.uploads(request,supplementDto);
return R.ok(map);
}
使用request和实体类相结合进行接收,因为信息字段过多,注意:formata类型实体类前面不能加@RequestBody注解。如果信息字段少可以直接用request接收,然后用request.getParameter(“表单名”),进行接收。
service层
@Override
public Map<String, Object> uploads(HttpServletRequest request,StorageSupplementDto storageSupplementDto) {
System.out.println("method uploads==========");
String location = myConfig.getLocation();
System.out.println("method uploads location=========" + location);
Map<String, MultipartFile> fileMap = new TreeMap<String, MultipartFile>();
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<String> 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<String, Object> resultMap = recycleStorageService.saveSupplement(storageSupplementDto);
return resultMap;
}