我正在尝试上传文件并在服务器端读取它。但我无法读取文件而是我得到了一个例外
Required MultipartFile parameter 'file' is not present
以下是相同的代码段。如果我在这里做错了,你能告诉我吗?有没有其他方法可以读取服务器端的ajax请求发送的文件。
<form id="dealform" method="post" enctype="multipart/form-data" type="file">
<input type="file" name="file" id="upload_file" style="visibility: hidden;width:0px;height:0px;"/><input id="fg-upload-button" type="submit" value="Upload" style="display:none;"/>
</form>
this.getRecord = function(params) {
var file = $('#upload_file').prop("files")[0];
$.ajax({
url : /Upload,
data : file,
type : 'POST',
dataType : 'json',
timeout : json_timeout,
error : function(){
that.notifyGetDataError('error getting:');
},
success : function(data){
that.notifyGetDataSuccess();
}
});
};
In the controller :
@RequestMapping(value = "/Upload.json", method = RequestMethod.POST)
public ModelAndView getContents(@RequestParam("file") MultipartFile file) {
}
Using the below in applicationContext.xml
<bean id="multipartResolver"
class="org.springframework.web.multipart.commons.CommonsMultipartResolver">
</bean>
答案 0 :(得分:0)
代码将文件本身作为有效负载传递给您的服务器。但是,您的控制器希望将文件作为参数“file”
的值发送答案 1 :(得分:0)
您发送的文件为dataType =“json”,这可能会导致您出现问题,因为您的内容类型是multipart / form-data
请点击此链接FormData for ajax file upload
您问题的另一个链接是here
您可以点击此链接,该链接包含MultipartFile
的控制器代码答案 2 :(得分:0)
data : {file1:file}
并在控制器中
getContents(@RequestParam("file1") MultipartFile file)
答案 3 :(得分:0)
在控制器方法中,只需将请求参数的名称更改为data:
@RequestMapping(value = "/Upload.json", method = RequestMethod.POST)
public ModelAndView getContents(@RequestParam("data") MultipartFile file) {
}