【发布时间】:2017-10-19 16:55:13
【问题描述】:
当我尝试通过 Ajax 将 csv 文件上传到 spring 控制器时,我得到了错误 HTTP Status 400 - Required request part 'file' is not present
我的ajax代码是
<script type="text/javascript">
var form = $('#correctAnswerData');
form.on('submit', function(e) {
e.preventDefault();
var formData = new FormData();
formData.append('file', $('input[type=file]')[0].files[0]);
console.log("form data " + formData);
$.ajax({
url: 'answerdatacheck',
data: formData,
processData: false,
contentType: false,
type: 'PUT',
success: function(data) {
alert(data);
},
error: function() {
$('#errorMsg').html("An error occurred.");
}
});
}
);
</script>
我的控制器代码是
@RequestMapping(value = "/answerdatacheck", method = RequestMethod.PUT)
public String regiscorrectAnswerData(Model model, @RequestParam("file") MultipartFile file) {
if (file.isEmpty()) {
model.addAttribute("alertStatus", 1);
model.addAttribute("alertMessage", "File is empty");
return "jsonView";
}
model.addAttribute("alertStatus", 2);
return "jsonView";
}
实际上我将 bean 包含在 application-context.xml 中的原因是什么
<bean id="multipartResolver"
class="org.springframework.web.multipart.commons.CommonsMultipartResolver">
<!-- max upload size in bytes -->
<property name="maxUploadSize" value="20971520" /> <!-- 20MB -->
<!-- max size of file in memory (in bytes) -->
<property name="maxInMemorySize" value="1048576" /> <!-- 1MB -->
</bean>
我是不是错过了什么。
【问题讨论】:
-
尝试通过 POST 更改 PUT 并检查是否有效
-
尝试将
enctype: 'multipart/form-data'添加到ajax选项
标签: ajax spring csv spring-mvc file-upload