(特别RestEasy的)如何使用jax-rs做多部分/表单文件上传?
这将是很好(单个文件)有类似的方法签名:
public void upload(@FormParam("name") ..., @FormParam("file") file: InputStream)
...
可行?还是我在做梦?似乎并不那么简单。
(特别RestEasy的)如何使用jax-rs做多部分/表单文件上传?
这将是很好(单个文件)有类似的方法签名:
public void upload(@FormParam("name") ..., @FormParam("file") file: InputStream)
...
可行?还是我在做梦?似乎并不那么简单。
关键是利用RESTEasy附带的@MultipartForm注释。这使您可以定义一个POJO,它包含表单的所有部分并轻松绑定它。
就拿以下POJO:
public class FileUploadForm {
private byte[] filedata;
public FileUploadForm() {}
public byte[] getFileData() {
return filedata;
}
@FormParam("filedata")
@PartType("application/octet-stream")
public void setFileData(final byte[] filedata) {
this.filedata = filedata;
}
}
现在,所有你需要做的就是用这个POJO的实体这将是这个样子:
@POST
@Path("/upload")
@Consumes("multipart/form-data")
public Response create(@MultipartForm FileUploadForm form)
{
// Do something with your filedata here
}
raiglstorfer,你将如何设置测试此服务的请求? – c12 2011-04-20 23:31:19
@ c12我使用cURL来测试我的RESTeasy方法。像这样的东西应该工作:'curl -F [email protected] http:// localhost:8080/Project/rest-servlet/upload',更多信息在这里:[link](http://curl.haxx.se /) – 2011-06-23 10:14:01
迈克尔,你是怎么使用测试这项服务?我无法弄清楚如何设置请求... – c12 2011-04-20 23:32:00