zoukankan      html  css  js  c++  java
  • 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;
        }
    }

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

  • 相关阅读:
    Linux忘了root的密码怎么办
    缩略图的实现
    ASP.NET程序编写注意 (转载)
    太极拳
    Linux系统管理技巧大荟萃
    茶经(转载)
    datagrid的显示控制
    太极功
    Linux下硬盘分区详解
    Tomcat4.0中文问题简单解决方法
  • 原文地址:https://www.cnblogs.com/javaLin/p/8274751.html
Copyright © 2011-2022 走看看