美文网首页SSM
SSM框架系列学习总结11之SpirngMVC 文件上传

SSM框架系列学习总结11之SpirngMVC 文件上传

作者: 梦蓝樱飞2020 | 来源:发表于2018-02-07 10:56 被阅读97次
    1. 表单中的组件type="file"
      image.png
      <input type="file" name="pictureFile"/>

    2.如果要上传文件, 那么必须在form表单中添加如下属性enctype="multipart/form-data"告诉服务器,并且method属性值必须为post, 传递给后台的数据是个文件而不是字符串


    image.png
    <form id="itemForm" action="${pageContext.request.contextPath}/updateItems.do"
          enctype="multipart/form-data" method="post">
    </form>
    

    3.需要在springmvc.xml文件中配置一个文件解析器


    image.png
        <!-- 文件上传 -->
        <bean id="multipartResolver"
              class="org.springframework.web.multipart.commons.CommonsMultipartResolver">
            <!-- 设置上传文件的最大尺寸为5MB -->
            <property name="maxUploadSize">
                <value>5242880</value>
            </property>
            <property name="defaultEncoding">
                <value>UTF-8</value>
            </property>
        </bean>
    
    1. 文件上传需要导入文件上传的jar包


      image.png
    2. 在Controller方法中进行图片参数的绑定


      image.png
        // 修改信息
        @RequestMapping(value = "/updateItems.do")
        public String updateItems(Model model,                           
                                  @RequestParam("pictureFile") MultipartFile pic) throws Exception {
    
    1. 在tomcat中绑定一个虚拟路径, 真正路径是本地的磁盘。在tomcat的server.xml文件中的<host>标签下添加,然后只需要将图片上传到E盘下的temp目录即可
    image.png

    切记:不要把图片上传到工程目录 ,不方便进行工程维护。实际电商项目中使用专门图片服务器(比如apache、tomcat)。本教程使用图片虚拟目录,通过虚拟目录访问硬盘上存储的图片目录。

    我用的是开发工具为IDEA,虚拟目录的设置为
    在tomcat服务器配置中, 加入存放图片的文件夹, 在右边的访问写上路径.


    image.png image.png

    效果:


    image.png
    1. 具体的上传代码
      在对应的Controller方法里添加
    // 下面是图片上传的代码
    if (!pic.isEmpty()) {
        // 得到图片的原始文件名
        String originalName = pic.getOriginalFilename();
        // 指定带盘符的路径, 物理路径
        String realPath = "E:\\temp\\";
        /*
            为了处理出现重名现象, 将原始文件名去掉,
            通过UUID算法生成新的文件名
         */
        String uuidName = UUID.randomUUID().toString();
        // uuid名称加上文件的后缀名
        String newFile = uuidName + originalName.substring(originalName.lastIndexOf("."));
        // 创建File文件
        File file = new File(realPath + newFile);
        // 将图片写入到具体的位置
        pic.transferTo(file);
        // 将文件名保存到数据库
        items.setPic(newFile);
    
    
    }
          
    

    完整代码地址

    https://github.com/menglanyingfei/SSMLearning/blob/master/jar%E5%8C%85/%E6%96%87%E4%BB%B6%E4%B8%8A%E4%BC%A0.zip
    https://github.com/menglanyingfei/SSMLearning/tree/master/SSM

    相关文章

      网友评论

        本文标题:SSM框架系列学习总结11之SpirngMVC 文件上传

        本文链接:https://www.haomeiwen.com/subject/xhdozxtx.html