springmvc上传文件功能

1.文件上传功能需求:

通过jsp选择文件目录,点击保存到数据库(文件名)。

2.原理:使用Fileupload进行文件上传,springmvc建立文件的虚拟目录,也就是本地磁盘上,用于存放临时文件,这个临时文件是在做文件上传的时候,

通过uuid随机生成文件名(避免文件重复),然后通过MultipartFile 对象的transferTo,将文件内容写入到创建好的临时文件中,将文件名保存到数据库,完成文件上传。

3.实现步骤:

①首先页面jsp 提供form表单,form表单的要求是:enctype="multipart/form-data" method=“post” 。

②上传的input <input type="file" name="pictureFile">

③配置使用Tomcat创建虚拟目录,用于存放临时上传文件,保存文件在本地磁盘,当访问文件只需要路径就可以读取该文件。

Tomcat配置虚拟目录步骤:

④在springmvc.xml中配置文件上传表单的multipart解析器,目的是:

检查当前 Web 请求是否为 multipart类型

②设定文件的encodingtype

③设定上传文件的大小

关于multipartResolver的原理,详细请见:http://exceptioneye.iteye.com/blog/1314958

配置如下:

<!-- 配置文件上传 -->
<bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver">
<!-- 文件上传最大5M -->
<property name="maxUploadSize">
<value>5242880</value>
</property>
</bean>

⑤springmvc的参数绑定,设置handler(方法)的形参需要是:MultipartFile pictureFile   形参名必须是与input中的name保持一致

a.取上传文件的文件名:String filename = pictureFile.getOriginalFilename();

b.新建一个文件作为临时文件存到Tomcat指定的虚拟目录

//设置新文件名称,通过uuid
int lastIndexOf = filename.lastIndexOf(".");
String newFileName = null;
if(null != filename && lastIndexOf != -1){
newFileName = UUID.randomUUID().toString() + filename.substring(lastIndexOf);
}

E:/springmvcFileUpLoad/temp/      注:该路径为指定的Tomcat的虚拟目录,filePath为 根据当前时间建立的文件夹,newFileName为新建的文件名包含后缀。

String filePath=new SimpleDateFormat("yy/MM/dd").format(new Date()).toString();  
File uploadPic = new File("E:/springmvcFileUpLoad/temp/"+ filePath + newFileName);
if(!uploadPic.exists()){
uploadPic.mkdirs();
}

c.将上传文件的内容拷贝到临时文件。

pictureFile.transferTo(uploadPic);

d.保存文件路径到数据库。

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值