目录
2、注意spring-mvc.xml中的视图解析器有没有写上:
一、SpringMVC与Struts文件上传对比
一、Struts文件上传:
1、页面:多功能表单设置enctype="multipart/form-data
2、后台:定义三个变量
filename:文件名
filecontexttype:文件类型file文件
3、访问:tomcat配置映射地址
配置在server.xml中
<context path="/uploadImages" docbase="E:/temp/">
二、SpringMVC文件上传
1、页面:多功能表单设置enctype="multipart/form-data
2、后台:在上传的方法上传递一个multipartFile类接受页面传递过来的参数
3、访问:tomcat配置映射地址
idea:
直接在 tomcat的发布目录进行配置,在配置的部署工件中进行配置外部资源
二、SpringMVC上传文件步骤
步骤:
1、配置相关依赖
<dependency> <groupId>commons-fileupload</groupId> <artifactId>commons-fileupload</artifactId> <version>1.3.3</version> </dependency>
2、springmvc.xml
<bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver"> <!-- 必须和用户JSP 的pageEncoding属性一致,以便正确解析表单的内容 --> <property name="defaultEncoding" value="UTF-8"></property> <!-- 文件最大大小(字节) 1024*1024*50=50M--> <property name="maxUploadSize" value="52428800"></property> <!--resolveLazily属性启用是为了推迟文件解析,以便捕获文件大小异常--> <property name="resolveLazily" value="true"/> </bean>
3、upload.jsp
<form action="${pageContext.request.contextPath}/upload" method="post" enctype="multipart/form-data"> <input type="file" name="xxx"> <input type="submit" value="上传"> </form>
4、方法代码
@RequestMapping("/upload")
public String upload(HttpServletRequest request, MultipartFile xxx){
try {
FileUtils.copyInputStreamToFile(xxx.getInputStream(),new File("E://temp//2021//mvc//upload/"+xxx.getOriginalFilename()));(注意这里是用的"//",最后一个只有一个"/")
} catch (IOException e) {
e.printStackTrace();
}
return "upload";
}
效果展示:
1、页面:
上传文件中:
上传文件之后:到达指定的目录中:
上传成功!
三、SpringMVC文件上传需要注意的几点地方
1、需要注意上传界面中的属性。因为是和方法中属性名对应:
2、注意spring-mvc.xml中的视图解析器有没有写上:
3、注意上传文件大小是否超出固定文件大小
4、注意方法放置位置
要是在SpringMVC文件上传中,出现错误,就可以从以上四点出发
今天分享的知识就到此结束了,希望能够帮助到你!