spring mvc 简单的文件上传与下载

上传文件有很多种方法,这里主要讲解的是spring mvc内提供的文件上传

前提使用:spring mvc 

在这个之前我们需要把环境给配置好

1:springmvc的XML配置文件加上这一段就即可,

<!-- 配置文件上传 -->
    <!--200*1024*1024即200M resolveLazily属性启用是为了推迟文件解析,以便捕获文件大小异常 -->
    <bean id="multipartResolver"
          class="org.springframework.web.multipart.commons.CommonsMultipartResolver">
        <property name="maxUploadSize" value="209715200" />
        <property name="maxUploadSizePerFile" value="2097152"/>
        <property name="defaultEncoding" value="UTF-8" />
        <property name="resolveLazily" value="true" />
    </bean>

2:在JSP页面我们需要注意的一点是需要在form标签里面加上

enctype="multipart/form-data"  这一段

 <form class="layui-form" action="" method="post" enctype="multipart/form-data">
 ………… 
 <input type="file" name="ufiles"/>
…………
<form>

3:在控制层接收文件,实现上传

 //在控制层接受到文件,然后调用文件上传方法
 //方法返回的是一个存入数据库的路径,也可以根据自己需求进行修改
    @RequestMapping("/updateUser")
    public String updateUser(MultipartFile ufiles,HttpSession session){
     //调用上传文件方法,返回一个保存到数据库的路径 String imgUrl
= FileUploading.uploading(ufiles,session); return "redirect:/userPage/update.jsp"; }

4:文件上传方法

public class FileUploading {

    /**
     * 文件上传
     * @param ufiles
     * @param session
     * @return 保存到数据库的路径
     */
    public static String uploading(MultipartFile ufiles, HttpSession session){
        if(!ufiles.isEmpty()){
            //获取放置图片的路径
            String beanPath = session.getServletContext().getRealPath("/images");
            //获取图片名字
            String realName = ufiles.getOriginalFilename();
            try {
                //开始上传
                ufiles.transferTo(new File(beanPath+"/"+realName));
                //保存路径到数据库
                String imgUrl = session.getServletContext().getContextPath()+"/images/"+realName;
                return imgUrl;
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
        return null;
    }
}

对于上传文件命名的处理每个人都有不同的方法,在这里不做讲解。

 

posted @ 2018-01-12 11:09  信息界的搬运工  阅读(318)  评论(0编辑  收藏  举报