背景
请求的ContentType为:
Content-Type: multipart/form-data;
在执行以下代码时报错:
request.getReader();
详细错误:
getInputStream() has already been called for this request
问题原因
Spring预先读取并处理了multipart的内容,并将其封装为MultipartHttpServletRequest
,如果再次通过request获取流就会抛错
解决方案
通过Spring的封装类获取文件流:
MultipartHttpServletRequest multiRequest = (MultipartHttpServletRequest) request;