MultipartHttpServletRequest multipartRequest = (MultipartHttpServletRequest) request;对象转换错误,
去网上查了一下,一般都是两处需要注意:
1)首先在servlet.xml里需要配置(SpringMVC封装了commons-fileupload上传组件)
<bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver">
<!-- 设置上传文件的最大尺寸为10MB -->
<property name="maxUploadSize">
<value>1048576000</value>
</property>
<property name="maxInMemorySize">
<value>1024</value>
</property>
</bean>
2)需要检查一下form表单是否有这个属性enctype="multipart/form-data"
<form name="form" method="post" action="home.htm" enctype="multipart/form-data" id="documentForm">
一般这两处都加上,(MultipartHttpServletRequest) request;转换都正常了,可是我在项目里还是报错。于是在方法判断一下,尼玛,提示没有enctype="multipart/form-data"。见鬼了。
action代码:
public void upsendFile(String path,HttpServletRequest request) throws IllegalStateException, IOException{
CommonsMultipartResolver multipartResolver = new CommonsMultipartResolver(request.getSession().getServletContext());
if (multipartResolver.isMultipart(request)) {
System.out.println("ss");
}
MultipartHttpServletRequest multipartRequest = (MultipartHttpServletRequest) request;
MultipartFile multipartFile = multipartRequest.getFile("fileName");
File file = new File(path + multipartFile.getOriginalFilename());
multipartFile.transferTo(file);
log.debug(multipartFile.getOriginalFilename());
}
在Google百度一会也没有找到问题所在。就在想是不是js哪里有问呢。js哪里是使用window.location.href("")跳转的。跳转的时候没提交表单?但也不会,前面的重命名也是用window.location.href("")跳转也没有问题
于是乎我就改成document.documentForm.action="";果然是没有提交表单。
js代码:
$("#execUpsend").click(function(){
var endPath=$("input[name=fileName]").val();
if (""==endPath)
{
alert("请选择文件!");
return;
}
document.documentForm.action = "/swbz/ywgl?fileB=2&paths="+paths+"&endPath="+endPath;
document.documentForm.submit();
});
用作保存,原文地址为:https://blog.csdn.net/liqimo1799/article/details/25998199