(特别是RESTeasy)
对于单个文件来说,有一个方法签名是很好的:
public void upload(@FormParam("name") ..., @FormParam("file") file: InputStream)
...
Run Code Online (Sandbox Code Playgroud)
可行?还是我在做梦?似乎并不那么简单.
ra9*_*a9r 26
关键是利用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;
}
}
Run Code Online (Sandbox Code Playgroud)
现在你需要做的就是在实体中使用这个POJO,它看起来像这样:
@POST
@Path("/upload")
@Consumes("multipart/form-data")
public Response create(@MultipartForm FileUploadForm form)
{
// Do something with your filedata here
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
27911 次 |
| 最近记录: |