Javascript e> $(value).attr(“名称”)。第二个问题是肯定的。只需在循环外部创建FormData(每个函数)。然后在循环中,只需将每个文件附加到循环中。循环结束后,发送请求。目前,您正在循环中执行所有操作,因此会为每个输入元素发送一个请求Hi Pees
Javascript e> $(value).attr(“名称”)。第二个问题是肯定的。只需在循环外部创建FormData(每个函数)。然后在循环中,只需将每个文件附加到循环中。循环结束后,发送请求。目前,您正在循环中执行所有操作,因此会为每个输入元素发送一个请求Hi Pees,javascript,java,rest,jersey,Javascript,Java,Rest,Jersey,e> $(value).attr(“名称”)。第二个问题是肯定的。只需在循环外部创建FormData(每个函数)。然后在循环中,只需将每个文件附加到循环中。循环结束后,发送请求。目前,您正在循环中执行所有操作,因此会为每个输入元素发送一个请求Hi PeesKilet..我也添加了我的HTML,请看一看..代码似乎只返回我的“文件”和“文件”,而不是名称属性,即元数据和文件。您需要将它们作为一部分附加。您只添加了一个部分(“文件”部分)。“metadata”和“fileak”应该是不同的部分。在J
e> $(value).attr(“名称”)。第二个问题是肯定的。只需在循环外部创建
FormData
(每个
函数)。然后在循环中,只需将每个文件附加到循环中。循环结束后,发送请求。目前,您正在循环中执行所有操作,因此会为每个输入元素发送一个请求Hi PeesKilet..我也添加了我的HTML,请看一看..代码似乎只返回我的“文件”和“文件”,而不是名称属性,即元数据和文件。您需要将它们作为一部分附加。您只添加了一个部分(“文件”部分)。“metadata”和“fileak”应该是不同的部分。在Javascript中,您还需要从每个输入元素的“name”属性中获取值。您所做的只是附加一个硬编码的“文件”。在HTML中,甚至没有名为“file”的输入元素。它应该是formData.append(name,file)
在循环中对不起,使用$(value.attr(“name”)
。第二个问题是肯定的。只需在循环外部创建FormData
(每个
函数)。然后在循环中,只需将每个文件附加到循环中。循环结束后,发送请求。目前,您正在循环内执行所有操作,因此会为每个输入元素发送一个请求
Select XML file 1: <input type="file" **name="metadata"** size="45" accept=".xml" />
Select PDF file 2: <input type="file" **name="fileak**" size="45" accept=".pdf" />
@POST
@Path("/upload")
@Consumes(MediaType.MULTIPART_FORM_DATA)
@Produces(MediaType.APPLICATION_JSON)
public Response uploadFile(
@FormDataParam("file") List<FormDataBodyPart> parts) {
for (FormDataBodyPart part : parts) {
FormDataContentDisposition disp = part
.getFormDataContentDisposition();
InputStream in = part.getValueAs(InputStream.class);
}
return Response.ok(" uploaded successfully !!").build();
}
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<meta content="text/html;charset=utf-8" http-equiv="Content-Type" />
<meta content="utf-8" http-equiv="encoding" />
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.3/jquery.min.js"></script>
<script type="text/javascript">
$(document).ready(function()
{
$("#uploadBtn").click(function()
{
$('input[type="file"]').each(function(index, value)
{
var nameValue=value.attributes[0].value;
var file = value.files[0];
if(file)
{
var formData = new FormData();
formData.append('file', file);
//formData["name"] = nameValue;
$.ajax({
url : '/publicationservice-web/v1/publication/upload',
type : 'POST',
data : formData,
cache : false,
contentType : false,
processData : false,
name:nameValue,
success : function(data, textStatus, jqXHR) {
var message = jqXHR.responseText;
$("#messages").append("<li>" + message + "</li>");
},
error : function(jqXHR, textStatus, errorThrown) {
$("#messages").append("<li style='color: red;'>" + textStatus + "</li>");
}
});
}
});
});
});
</script>
</head>
<body>
<h1>NGBulletin Upload System - Metadata and PDF</h1>
<form action="v1/publication/upload" method="post" enctype="multipart/form-data">
<p>
Select XML file 1: <input type="file" name="metadata" id="metadata" size="45" accept=".xml" />
</p>
<p>
Select PDF file 2: <input type="file" name="fileak" id="fileak" size="45" accept=".pdf" />
</p>
<p>
<input id="uploadBtn" type="button" value="Upload PFD Files" />
</p>
</form>
<ul id="messages">
</ul>
</body>
</html>
post(@FormDataParam("metadata") InputStream metaIn,
@FormDataParam("metadata") FormDataContentDisposition metaFcd,
@FormDataParam("fileak") InputStream fileakIn,
@FormDataParam("fileak") FormDataContentDisposition fileakFcd) {
}
@POST
@Consumes(MediaType.MULTIPART_FORM_DATA)
public Response uploadAsset(FormDataMultiPart multipart) {
Map<String, List<FormDataBodyPart>> map = multipart.getFields();
for (Map.Entry<String, List<FormDataBodyPart>> entry : map.entrySet()) {
for (FormDataBodyPart part : entry.getValue()) {
InputStream in = part.getEntityAs(InputStream.class);
String name = part.getName();
System.out.println("--- name: " + name);
}
}
return Response.ok("cool upload").build();
}