ファイルをアップロードすると、 のrequest
インスタンスになりorg.springframework.web.multipart.MultipartHttpServletRequest
ます。したがって、メソッドでキャストできますconvertFile()
。下記参照 :
public String convertFile(HttpServletRequest request, HttpSession session) {
// cast request
MultipartHttpServletRequest multipartRequest = (MultipartHttpServletRequest) request;
// You can get your file from request
CommonsMultipartFile multipartFile = null; // multipart file class depends on which class you use assuming you are using org.springframework.web.multipart.commons.CommonsMultipartFile
Iterator<String> iterator = multipartRequest.getFileNames();
while (iterator.hasNext()) {
String key = (String) iterator.next();
// create multipartFile array if you upload multiple files
multipartFile = (CommonsMultipartFile) multipartRequest.getFile(key);
}
// logic for conversion
}
しかし、JSP ページで選択したファイルの名前を取得 (null 値を受け取る) できません。
---> ファイル名を取得するには、次のように取得できます。
multipartFile.getOriginalFilename(); // get filename on client's machine
multipartFile.getContentType(); // get content type, you can recognize which kind of file is, pdf or image or doc etc
multipartFile.getSize() // get file size in bytes
ファイルのアップロードを機能させるには、以下のようにマルチパート リゾルバー Bean を作成していることを確認する必要があります。
<bean id="multipartResolver"
class="org.springframework.web.multipart.commons.CommonsMultipartResolver">
<!-- one of the properties available; the maximum file size in bytes -->
<property name="maxUploadSize" value="100000"/>
</bean>
参考:Springドキュメント