pri*_*nce 5 java inputstream file jax-rs jersey
我想收到从客户端上传的多个文件.我上传了多个文件并使用JAX-RS(Jersey)请求我的服务器端(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);
}
}
Run Code Online (Sandbox Code Playgroud)
如何在客户端上传的服务器端单独编写文件.
例如.我上传了诸如的文件My_File.txt, My_File.PNG, My_File.doc.我需要My_File.txt, My_File.PNG, My_File.doc在服务器端编写与上面相同的内容.
我怎样才能做到这一点?
你可以尝试这样的事情:
@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()
}
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4096 次 |
| 最近记录: |