2017-04-24 50 views
0

如何循环访问每个数据对象的ajax请求并为每个文件提取文件名和消息?谁能帮忙?该解析回一个列表到客户端侧循环访问数据对象并输出每个对象的对象文件名和消息

服务器侧控制器:

@RequestMapping(value = { "/fileUpload" }, method = RequestMethod.POST) 
@ResponseBody 
public List<FileUpload> uploadFile(@RequestParam("number") String number, @RequestParam("files[]") MultipartFile[] files, MultipartHttpServletRequest req, HttpServletResponse res) 
{  
    WebUserSession session = (WebUserSession) req.getSession().getAttribute("webUserSession"); 
    String windowsUsername = session.getUsername(); 


    List<FileUpload> fileList = itsmService.uploadFile(files, windowsUsername, number); 
    int countTrue = 0; 
    int countFalse = 0; 

    for (FileUpload loopFile : fileList) 
    { 
     if (loopFile.getSuccess()) 
     { 
      countTrue++; 
     } 
     else 
     { 
      countFalse++; 
     } 

    } 



    return fileList; 
} 
} 

AJAX请求客户端侧数据对象的一部分:

success : function(data) { 
      FileUploadVisible(true); 
      console.log(data); 

}

+0

什么是显示的console.log(数据)? – Thierry

+0

对象形式的数组索引以及文件名,消息和成功 – RA19

+0

E.gObject 0:file name = a.txt,success = true,message =“file uploaded successfully” – RA19

回答

1

我不一定要理解你的问题,但是如果你的服务器返回如下数据:

[{"name":"toto.txt", "message":"bla", "success":true},{"name":"titi.txt", "message":"blabla", "success":true}] 

你可以这样做:

success:function(fileList) { 
fileList.forEach(function(file){ 
    console.log("File name:" + file.name + ", msg:" + file.message + ", success: " + file.success); 
}) 
} 

,或者如果你只是想显示成功上传的文件:

success:function(fileList) { 
    var uploadedFiles = [] 
    fileList.forEach(function(file){ 
     if (file.success) uploadedFiles.push(file.name) 
    }) 
    } 
    alert("Files uploaded: " + uploadedFiles.join(", "); 
+0

我可以使用数据吗?而不是我的数组文件列表?由于数据有我需要的所有信息。我试图输出成功上传的文件名,而不是上传,以便用户确切知道哪些文件名已上传并且尚未上传。 – RA19

+0

data或fileList,这只是参数的名称,你可以用你想要的whatewer! – Thierry

+0

好吧,而不是添加到控制台日志,我可以添加上传的所有文件名警报? – RA19