上傳單個檔案

要接收通過 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>