我正在使用Spring4 MVC并尝试上传文件以及其他一些输入字段。
我在spring xml和jackson转换器中添加了多部分解析器
<beans:bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver">
<beans:property name="maxUploadSize" value="250000"/>
<beans:property name="defaultEncoding" value="utf8" />
</beans:bean>
<beans:bean class="org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter">
<beans:property name="messageConverters" >
<beans:list>
<beans:ref bean="jacksonMessageConverter" />
</beans:list>
</beans:property>
</beans:bean>
在我的表单中,我已将其声明为enctype="multipart/form-data"
,以下是我的ajax调用
var oemManuals = new FormData();
oemManuals.append("name",$( "#name" ).val());
oemManuals.append("description",$( "#description" ).val());
if($('#url').val()){
oemManuals.append( 'url', $( '#url' )[0].files[0] );
}
$.ajax({
type: "POST",
url: "${pageContext.request.contextPath }/uploadManuals",
data: oemManuals,
processData: false,
contentType: false,
cache: false,
dataType: "json",
success: function(data){
在我的控制器中,我尝试了@RequestParam
并请求获得required paramerter name is null
。虽然我看到参数存在
@RequestMapping(value="/uploadManuals", method = RequestMethod.POST)
public @ResponseBody List<OEMManuals> uploadManuals(HttpServletRequest request,
@RequestParam MultipartFile url,
HttpSession session) throws IOException{
所有值均为null。
有人可以建议我是否遗漏了什么。
由于
答案 0 :(得分:0)
您在控制器中指定了参数'url'。
<?xml version="1.0" encoding="utf-8"?>
<shape
xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle">
<solid android:color="#ffffff" />
</shape>
因此,在你的ajax调用中必须有一个名为url的参数,如下所示
@RequestParam MultipartFile url