Java 处理 multipart/mixed 请求
程序员文章站
2022-05-21 17:41:48
一、multipart/mixed 请求 multipart/mixed 和 multipart/form date 都是多文件上传的格式。区别在于,multipart/form data 是一种特殊的表单上传,其中普通字段的内容还是按照一般的请求体构建,文件字段的内容按照 multi ......
一、multipart/mixed 请求
multipart/mixed 和 multipart/form-date 都是多文件上传的格式。区别在于,multipart/form-data 是一种特殊的表单上传,其中普通字段的内容还是按照一般的请求体构建,文件字段的内容按照 multipart 请求体构建,后端在处理 multipart/form-data 请求的时候,会在服务器上建立临时的文件夹存放文件内容,可参看。而 multipart/mixed 请求会将每个字段的内容,不管是普通字段还是文件字段,都变成 stream 流的方式去上传,因此后端在处理 multipart/mixed 的内容时,必须从 stream流中处理。
二、servlet 处理 multipart/mixed 请求
part signpart = request.getpart(constants.sign_key); part appidpart = request.getpart(constants.appid_key); part noncestrpart = request.getpart(constants.noncestr_key); map<string, string[]> 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) { bufferedreader reader = null; try { reader = new bufferedreader(new inputstreamreader(inputstream, "utf-8")); string line; stringbuffer buffer = new stringbuffer(); while ((line = reader.readline()) != null) { buffer.append(line); } return buffer.tostring(); } catch (unsupportedencodingexception e) { e.printstacktrace(); } catch (ioexception e) { e.printstacktrace(); } finally { try { reader.close(); } catch (ioexception e) { e.printstacktrace(); } } return ""; }
三、springmvc 处理 multipart/mixed 请求
@responsebody @requestmapping(value = {"/token/user/uploadimage.yueyue", "/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 avatar, httpservletrequest request) { }
推荐阅读
-
Java 处理 multipart/mixed 请求
-
Java进阶篇5_SpringMVC的简介、SpringMVC的组件解析、SpringMVC的数据响应、SpringMVC获取请求数据、SpringMVC拦截器、SpringMVC异常处理机制
-
Java Web(8)—Servlet 3.0 的异步请求处理详解
-
解决Java处理HTTP请求超时的问题
-
java---请求body实体校验和异常抛出处理(异常处理针对servert容器,webFlux 另一篇文章描述)
-
python处理multipart/form-data的请求方法
-
Java 处理 multipart/mixed 请求
-
[Java EE 7] Servlet 处理 multipart 请求
-
Java进阶篇5_SpringMVC的简介、SpringMVC的组件解析、SpringMVC的数据响应、SpringMVC获取请求数据、SpringMVC拦截器、SpringMVC异常处理机制
-
解决Java处理HTTP请求超时的问题