将 class 对象发送到多部分表单数据预期 Web 服务
Sending a class object to a multipart-form-data-expected web service
这是我的网络服务声明
@POST
@Path("/upload")
@Consumes(MediaType.MULTIPART_FORM_DATA)
@Produces("application/json")
public DeviceDbUploadResponse upload(@FormDataParam("file1") InputStream file1,
@FormDataParam("file2") InputStream file2,
@FormDataParam("name1") String filename1,
@FormDataParam("name2") String filename2,
@FormDataParam("ID") String ID)
我的网络服务调用
var fd=new FormData();
fd.append("ID",ID);
/* lines of code here */
$.ajax({
url: 'http://localhost:8080/linterm2m/webapi/m2m/upload',
data: fd,
processData: false,
contentType: false,
type: 'POST'
});
到目前为止一切正常。现在需要通过请求对象接收所有数据(文件名和 ID),例如:
public class Request{
String ID;
String filename1;
String filename2;
}
但我怀疑它是否可以实现,因为 multipart-form-data 消费类型。我需要一些启发和解决方案。
Composing multipart/form-data with a different Content-Type on each parts with Javascript (or Angular)
我尝试按照这个问题中的答案进行操作,它起作用了。
fd.append('whole', new Blob([JSON.stringify({
ID: ID,
name1:file1.name,
name2:file2.name,
})], {
type: "application/json"
}));
请求 class 就像我提到的那样。
不需要 name1,name2 部分,但我只想使用具有各种属性的对象进行测试。
非常感谢 Naman 在 FormDataContentDisposition 方面的帮助。
这是我的网络服务声明
@POST
@Path("/upload")
@Consumes(MediaType.MULTIPART_FORM_DATA)
@Produces("application/json")
public DeviceDbUploadResponse upload(@FormDataParam("file1") InputStream file1,
@FormDataParam("file2") InputStream file2,
@FormDataParam("name1") String filename1,
@FormDataParam("name2") String filename2,
@FormDataParam("ID") String ID)
我的网络服务调用
var fd=new FormData();
fd.append("ID",ID);
/* lines of code here */
$.ajax({
url: 'http://localhost:8080/linterm2m/webapi/m2m/upload',
data: fd,
processData: false,
contentType: false,
type: 'POST'
});
到目前为止一切正常。现在需要通过请求对象接收所有数据(文件名和 ID),例如:
public class Request{
String ID;
String filename1;
String filename2;
}
但我怀疑它是否可以实现,因为 multipart-form-data 消费类型。我需要一些启发和解决方案。
Composing multipart/form-data with a different Content-Type on each parts with Javascript (or Angular)
我尝试按照这个问题中的答案进行操作,它起作用了。
fd.append('whole', new Blob([JSON.stringify({
ID: ID,
name1:file1.name,
name2:file2.name,
})], {
type: "application/json"
}));
请求 class 就像我提到的那样。 不需要 name1,name2 部分,但我只想使用具有各种属性的对象进行测试。 非常感谢 Naman 在 FormDataContentDisposition 方面的帮助。