当前位置:   article > 正文

java中的multipart_Java 处理 multipart/mixed 请求

multipart/mixed

一、multipart/mixed 请求

multipart/mixed 和 multipart/form-date 都是多文件上传的格式。区别在于:multipart/form-data 是一种特殊的表单上传,其中普通字段的内容还是按照一般的请求体构建,文件字段的内容按照 multipart 请求体构建,后端在处理 multipart/form-data 请求的时候,会在服务器上建立临时的文件夹存放文件内容,可参看这篇文章;而 multipart/mixed 请求会将每个字段的内容,不管是普通字段还是文件字段,都变成 Stream 流的方式去上传,因此后端在处理 multipart/mixed 的内容时,必须从 Stream 流中读取。

二、HttpServletRequest 处理 multipart/mixed 请求

@Override

public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {

Part signPart = request.getPart(Constants.SIGN_KEY);

Part appidPart = request.getPart(Constants.APPID_KEY);

Part noncestrPart = request.getPart(Constants.NONCESTR_KEY);

Map paramMap = new HashMap<>(8);

paramMap.put(signPart.getName(), new String[]{stream2Str(signPart.getInputStream())});

paramMap.put(appidPart.getName(), new String[]{stream2Str(appidPart.getInputStream())});

paramMap.put(noncestrPart.getName(), new String[]{stream2Str(noncestrPart.getInputStream())});

// 其他处理

}

private String stream2Str(InputStream inputStream) {

try (BufferedReader reader = new BufferedReader(new InputStreamReader(inputStream, "UTF-8"))) {

String line;

StringBuilder builder = new StringBuilder();

while ((line = reader.readLine()) != null) {

builder.append(line);

}

return builder.toString();

} catch (UnsupportedEncodingException e) {

e.printStackTrace();

} catch (IOException e) {

e.printStackTrace();

}

return "";

}

三、SpringMVC 处理 multipart/mixed 请求

SpringMVC 可以直接以 @RequestPart 注解接收 multipart/mixed 格式的请求参数。

@ResponseBody

@RequestMapping(value = {"/token/user/uploadImage"}, method = {RequestMethod.POST, RequestMethod.GET})

public AjaxList uploadImage(

@RequestPart (required = false) String token,

@RequestPart (required = false) String sign,

@RequestPart (required = false) String appid,

@RequestPart (required = false) String noncestr,

@RequestPart MultipartFile file, HttpServletRequest request) {

}

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/Gausst松鼠会/article/detail/302957
推荐阅读
相关标签
  

闽ICP备14008679号