ajax400 not present,javascript - HTTP STATUS 400 Required MultipartFile [] parameter not present - S...

博客内容涉及一个前端开发问题,作者在尝试使用Ajax进行多文件上传时遇到了HTTP 400错误。错误信息指出'files'参数未找到。问题可能出在前端Ajax请求的构造上,特别是当尝试将文件数组附加到formData时。在服务器端,代码期望接收到'MultipartFile[]'类型的'files'参数。解决方案可能涉及检查前端是否正确地将文件数组传递给后台。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

I am getting the below errror when trying to upload multiple files to my ajax request. Below is the error in the logs and my scripts. It looks like its failing on the ajax request as the console.logs are printing out as expected. Im not sure what this means?

HTTP Status 400 - Required MultipartFile[] parameter 'files' is not present

AJAX REQUEST:

function makeProgress(number){

var url = getRelativeURL("web/fileUpload");

var formData = new FormData();

formData.append('number', number);

fls = document.getElementById("attachmentFileUploadInput").files; //length of files...

console.log(fls);

for(j=0;j

formData.append('files[]', fls[j]); //note files[] not files

}

//formData.append('file', $('input[type=file]')[0].files[0]);

console.log("form data " + formData);

$.ajax({

url : url,

data : formData[j],

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);

}

});

}

Server side:

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";

}

}

Configuration

@Bean(name = "multipartResolver")

public CommonsMultipartResolver commonsMultipartResolver(){

CommonsMultipartResolver commonsMultipartResolver = new CommonsMultipartResolver();

commonsMultipartResolver.setDefaultEncoding("utf-8");

commonsMultipartResolver.setMaxUploadSize(5000000); // 5000000 -> 5MB

return commonsMultipartResolver;

}

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值