我正在尝试使用 REST 服务使用 html 和 Spring 3.0.6 设置简单的上传。我已经按照在线教程进行操作,但 MultipartFile 参数始终为空。这是配置和代码:
应用程序上下文.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>
休息控制器:
@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 的教程中复制了示例,但无论我更改什么,文件参数始终为空。“名称”将在文本框中具有值,但文件将为空。
我也尝试过使用 Jersey,我收到了文件的 InputStream,但 FormDataContentDisposition 为空,所以我无法确定文件类型。
这也在 Jetty 上运行。
我错过了什么?