gpt4 book ai didi

javascript - Ajax 请求正确循环,但未发送到服务器以获取多个文件。数组中只保存一个文件

转载 作者:行者123 更新时间:2023-12-02 13:25:34 26 4
gpt4 key购买 nike

我有一个 ajax 请求正在运行,因为我可以看到文件数量、文件名和循环。我正在尝试将这些保存到我的计算机上的本地文件夹中。我有一个用于两个变量的@RequestParam,一个数字(字符串)和文件(一个数组)。它似乎适用于一个文件,但不保存下一个文件。谁能找出原因吗?

    function makeProgress(number){   
var url = getRelativeURL("web/fileUpload");
var formData = new FormData();
formData.append('number', number);
fls = document.getElementById("attachmentFileUploadInput").files; //number of files...
console.log(fls);
for(j=0;j<fls.length;j++){
formData.append('files[]', fls[j]); //note files[] not files
$.ajax({
url : url,
data : formData,
processData : false,
contentType: false,
type : 'POST',
success : function(data) {
FileUploadVisible(true);
$('#attachmentModal').modal('hide')
$(':input','#attachmentModal').val("");
$("#pbarmain").hide();
$("#pbar").hide();
$("#actionPlanDiv").hide();
setObjectEnabled('#Upload',false);
},
error : function(err) {
FileUploadErrorVisible(true);
}
});
console.log('loop each file working');
}
console.log("form data " + formData);


}

服务器端 - 这是出现问题的地方,仅将第一个文件保存在文件夹中:

private static String UPLOADED_FOLDER = "C://temp//";

@RequestMapping(value = { "/fileUpload" }, method = RequestMethod.POST)
@ResponseBody
public String uploadFile( @RequestParam("number") String number, @RequestParam("files[]") MultipartFile[] files, MultipartHttpServletRequest req, HttpServletResponse res)
{

for (MultipartFile file : files) {
try {
File directory = new File(UPLOADED_FOLDER + number);
if (! directory.exists()){
directory.mkdir();
}
byte[] bytes = file.getBytes();
Path path = Paths.get(UPLOADED_FOLDER + number + "//" + file.getOriginalFilename());
Files.write(path, bytes);
logger.info("You have successfully uploaded '" + file.getOriginalFilename() + "'");
return("File Uploaded");


} catch (Exception e) {
res.setStatus(HttpServletResponse.SC_INTERNAL_SERVER_ERROR);
logger.error("Failed to upload file '" + file.getOriginalFilename() + "'", e);
return("File Not Uploaded");
}
}
return "redirect:/fileUpload";
}

}

最佳答案

return("文件已上传");这打破了循环。如果您希望循环完全运行,则需要在循环结束后放置 return。

关于javascript - Ajax 请求正确循环,但未发送到服务器以获取多个文件。数组中只保存一个文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43400616/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com