上传单个文件
要接收通过 HTTP Post 上传的文件,你需要执行以下操作:
@RequestMapping(
value = "...",
method = RequestMethod.POST,
consumes = MediaType.MULTIPART_FORM_DATA_VALUE
)
public Object uploadFile(
@RequestPart MultipartFile file
) {
String fileName = file.getOriginalFilename();
InputStream inputStream = file.getInputStream();
String contentType = file.getContentType();
.
.
.
}
请注意,@RequestPart
参数的名称需要与请求中的部件名称匹配。
作为 HTML:
<form action="/..." enctype="multipart/form-data" method="post">
<input type="file" name="file">
</form>
作为 HTML( Spring TagLibs ):
<form action="/..." enctype="multipart/form-data" method="post">
<form:input type="file" path="file">
</form>
作为原始 HTTP 请求:
POST /... HTTP/1.1
Host: ...
Content-Type: multipart/form-data; boundary=----------287032381131322
------------287032381131322
Content-Disposition: form-data; name="file"; filename="r.gif"
Content-Type: image/gif
GIF87a.............,...........D..;
------------287032381131322--
该请求意味着以下内容:
fileName == "r.gif"
contentType == "image/gif"
在 Spring MVC 中
需要添加提到的 bean 来访问多部分功能
<!-- max size of file in memory (in bytes) -->
<property name="maxInMemorySize" value="1048576" /> <!-- 1MB -->
</bean>