これは、MVCアノテーションを使用してSpringで同様のことを実現する方法を示す例です。
@RequestMapping(method=RequestMethod.POST, value="/multipartexample")
public String examplePost(@ModelAttribute("fileUpload") FileUpload fileUpload){
// Handle form upload and return a view
// ...
}
@InitBinder
public void initBinder(ServletRequestDataBinder binder) {
binder.registerCustomEditor(byte[].class, new ByteArrayMultipartFileEditor());
}
public class FileUpload implements Serializable {
private MultipartFile myFile;
public MultipartFile getMyFile() {
return myFile;
}
public void setMyFile(MultipartFile myFile) {
this.myFile = myFile;
}
}
ファイル要素の名前が「myFile」であると仮定すると、htmlフォームからこのエンドポイントに投稿できるはずです。フォームは次のようになります。
<form:form commandName="fileUpload" id="fileUploadForm" enctype="multipart/form-data">
<form:input type="file" path="myFile" id="myFile"/>
</form:form>
@InitBinderコードは、ファイルをバイト配列に変換するようにSpringに指示するため、重要です。バイト配列は、MultipartFileに変換できます。