REST サービスを使用して、html と Spring 3.0.6 で簡単なアップロードを設定しようとしています。オンラインのチュートリアルに従いましたが、MultipartFile パラメーターは常に null です。構成とコードは次のとおりです。
アプリケーションコンテキスト.xml:
<bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver">
<property name="maxUploadSize" value="2000000"/>
</bean>
pom.xml:
<dependency>
<groupId>commons-io</groupId>
<artifactId>commons-io</artifactId>
<version>2.1</version>
</dependency>
<dependency>
<groupId>commons-fileupload</groupId>
<artifactId>commons-fileupload</artifactId>
<version>1.2.2</version>
</dependency>
html:
<html>
<head>
<title>Upload a file please</title>
</head>
<body>
<h1>Please upload a file</h1>
<form method="post" action="/site/restServices/artworkUpload/" enctype="multipart/form-data">
<input type="text" name="name"/>
<input type="file" name="file"/>
<input type="submit"/>
</form>
</body>
</html>
REST コントローラー:
@POST
@Path("/artworkUpload")
public String uploadFile(@RequestParam("name") String name,
@RequestParam("file") MultipartFile file) {
try {
if (!file.isEmpty()) {
byte[] bytes = file.getBytes();
// store the bytes somewhere
return "redirect:uploadSuccess";
} else {
return "redirect:uploadFailure";
}
}
catch (Exception ex)
{
}
return null;
}
Spring のチュートリアルから例をコピーしましたが、何を変更しても、file パラメーターは常に null です。「名前」はテキスト ボックスに値を持ちますが、ファイルは null になります。
Jersey も使用してみましたが、ファイルの InputStream を受け取りましたが、 FormDataContentDisposition が null であるため、ファイルの種類を特定できません。
これはJettyでも実行されています。
私は何が欠けていますか?