Springmvc中的文件上传
程序员文章站
2022-06-27 14:17:07
1.环境搭建: 在maven的pom.xml文件中导入两个依赖 1).commons-fileupload 2).commons-io 在resources目录下的springmvc.xml文件中配置multipartResolver 2.编写前台测试jsp 注意页面三要素: 1).表单提交方式必须 ......
1.环境搭建:
在maven的pom.xml文件中导入两个依赖
1).commons-fileupload
2).commons-io
在resources目录下的springmvc.xml文件中配置multipartresolver
<?xml version="1.0" encoding="utf-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/xmlschema-instance" xmlns:context="http://www.springframework.org/schema/context" xmlns:mvc="http://www.springframework.org/schema/mvc" xsi:schemalocation=" http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc.xsd http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd"> <!--包扫描--> <context:component-scan base-package="cn.itcast"></context:component-scan> <!--配置multipartresolver,注意:id名称固定为multipartresolver--> <bean id="multipartresolver" class="org.springframework.web.multipart.commons.commonsmultipartresolver"> </bean> <mvc:annotation-driven ></mvc:annotation-driven> <!--让静态资源不经过过滤器--> <mvc:resources mapping="/js/**" location="/js/"></mvc:resources> <!--视图解析器给controller中返回的逻辑视图名加上前缀和后缀--> <bean id="internalresourceviewresolver" class="org.springframework.web.servlet.view.internalresourceviewresolver"> <property name="prefix" value="/web-inf/pages/"></property> <property name="suffix" value=".jsp"></property> </bean> </beans>
2.编写前台测试jsp
<form action="/test/file" method="post" enctype="multipart/form-data">
上传的文件:<input type="file" name="upload"><br/>
密钥:<input type="text" name="password"><br/>
<input type="submit" value="提交">
</form>
注意页面三要素:
1).表单提交方式必须为post
2).表单中必须有file域,即type="file"
3).表单中enctype="multipart/form-data"
3.编写后台测试代码
@controller @requestmapping("/test") public class fileuploadcontroller { @requestmapping("/file") public string testfileupload(httpservletrequest request, multipartfile upload) throws ioexception { //upload是表单中文件name属性值,必须保持一致 system.out.println("testfileupload..."); string realpath = request.getsession().getservletcontext().getrealpath("/uploads"); file file = new file(realpath); if(!file.exists()){ file.mkdirs();//创建文件夹 } string filename = upload.getoriginalfilename(); //获取文件名 string name = upload.getname();//获取表单中的name属性值 即upload string uuid = uuid.randomuuid().tostring().replaceall("-", "");//生成uuid避免文件名重复导致冲突覆盖 filename=uuid+"_"+filename; upload.transferto(new file(file,filename)); return "forward:success.jsp"; }
上一篇: Java开发笔记(九)赋值运算符及其演化
下一篇: Shell文本处理三剑客之sed的使用