我已经实现了REST服务,用于将多个文件上传到服务器中。但问题是,如果我在REST服务中使用FormDataMultiPart
,我无法获取文件详细信息。我可以获取文件内容。获取如下的文件详细信息,它给了我一个错误说不支持。
@POST
@Consumes(MediaType.MULTIPART_FORM_DATA)
public void upload(FormDataMultiPart formParams)
{
Map<String, List<FormDataBodyPart>> fieldsByName = formParams.getFields();
//Assume i am sending only files with the request
for (List<FormDataBodyPart> fields : fieldsByName.values())
{
for (FormDataBodyPart field : fields)
{
InputStream is = field.getEntityAs(InputStream.class);
String fileName = field.getName();
field.getMediaType();
//Those work perfectly
//This gave me an error
FormDataContentDisposition f=field.getEntityAs(FormDataContentDisposition .class);
System.out.println(f.getFileName());
}
}
}
如果使用type,name,size
,请告诉我如何为每个上传的文件获取FormDataMultiPart
等文件详细信息。
答案 0 :(得分:7)
我最终能够访问文件详细信息,这里是代码片段。
@POST
@Consumes(MediaType.MULTIPART_FORM_DATA)
public void upload(FormDataMultiPart formParams)
{
Map<String, List<FormDataBodyPart>> fieldsByName = formParams.getFields();
//Assume i am sending only files with the request
for (List<FormDataBodyPart> fields : fieldsByName.values())
{
for (FormDataBodyPart field : fields)
{
InputStream is = field.getEntityAs(InputStream.class);
String fileName = field.getName();
field.getMediaType();
//This working fine
FormDataContentDisposition f=field.getFormDataContentDisposition();
System.out.println(f.getFileName());
}
}
}