我想收到从客户端上传的多个文件。我使用JAX-RS
(泽西岛)上传了多个文件并请求我的服务器端(Java)。
我有以下代码,
@POST
@Consumes(MediaType.MULTIPART_FORM_DATA)
public void upload(@Context UriInfo uriInfo,
@FormDataParam("file") final InputStream is,
@FormDataParam("file") final FormDataContentDisposition detail) {
FileOutputStream os = new FileOutputStream("Path/to/save/" + appropriatefileName);
byte[] buffer = new byte[1024];
int length;
while ((length = is.read(buffer)) > 0) {
os.write(buffer, 0, length);
}
}
如何在客户端上传的服务器端单独编写文件。
例如。我上传了My_File.txt, My_File.PNG, My_File.doc
等文件。
我需要在服务器端编写与上面My_File.txt, My_File.PNG, My_File.doc
相同的内容。
我怎样才能做到这一点?
答案 0 :(得分:7)
您可以尝试这样的事情:
@POST
@Consumes(MediaType.MULTIPART_FORM_DATA)
public void upload(FormDataMultiPart formParams)
{
Map<String, List<FormDataBodyPart>> fieldsByName = formParams.getFields();
// Usually each value in fieldsByName will be a list of length 1.
// Assuming each field in the form is a file, just loop through them.
for (List<FormDataBodyPart> fields : fieldsByName.values())
{
for (FormDataBodyPart field : fields)
{
InputStream is = field.getEntityAs(InputStream.class);
String fileName = field.getName();
// TODO: SAVE FILE HERE
// if you want media type for validation, it's field.getMediaType()
}
}
}
答案 1 :(得分:0)