zoukankan      html  css  js  c++  java
  • SSM框架中的文件上传(八)

    一、单文件的上传

      1、页面代码  

    <%@ page contentType="text/html;charset=UTF-8" language="java" %>
    <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
    <html>
      <head>
        <title>$Title$</title>
      </head>
      <body>
    
      <form action="${add}" method="post" enctype="multipart/form-data">
          <input name="gid" type="hidden" value="${goods.gid }">
          商品名称:<input name="gname" value="${goods.gname }"><br>
          商品价格:<input name="price" value="${goods.price }"><br>
          类型:<select name="type.tid">
          <c:forEach items="${types }" var="t">
              <option
                      <c:if test="${goods.tid==t.tid }">selected</c:if>
                      value="${t.tid }">${t.tname }</option>
          </c:forEach>
      </select><br>
          商品图片:<input type="file" name="pic" ><!-- multiple -->
          <c:if test="${goods!=null&&goods.img!=null }">
              <img src="imgs/${goods.img }" width="80">
          </c:if>
          <br>
          <input name="img" type="hidden" value="${goods.img }">
          <br>
          <button type="submit">${goods==null?'增加':'修改' }</button>
      </form>
      </body>
    </html>

      2、控制器代码

     @RequestMapping("add")
        public String add(Goods goods, @RequestParam("pic") MultipartFile file, HttpServletRequest request, HttpSession session){
    
            String path = request.getSession().getServletContext().getRealPath("/imgs/");
            String oldName = file.getOriginalFilename();
            String ext = oldName.substring(oldName.lastIndexOf("."));
            String newName = UUID.randomUUID().toString()+ext;
            File f =new File(path,newName);
            try {
                file.transferTo(f);
                goods.setImg(newName);
                goodsService.add(goods);
            } catch (IOException e) {
                e.printStackTrace();
            }
            request.setAttribute("types",goodsService.findAllTypes());
            return "add";
        }

      3、spring核心配置文件

    <bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver">
            <property name="maxUploadSize" value="5000000"/>
            <property name="defaultEncoding" value="utf-8"/>
        </bean>
        <mvc:resources location="/imgs/" mapping="/imgs/**"/>
        <mvc:annotation-driven/>

    二、多文件的上传

      1、只需修改控制器代码

       对象改为数组

    @RequestMapping("add")
        public String add(Goods goods, @RequestParam("pic") MultipartFile[] files, HttpServletRequest request, HttpSession session){
    
            for(MultipartFile file:files){
                String path = request.getSession().getServletContext().getRealPath("/imgs/");
                String oldName = file.getOriginalFilename();
                String ext = oldName.substring(oldName.lastIndexOf("."));
                String newName = UUID.randomUUID().toString()+ext;
                File f =new File(path,newName);
                try {
                    file.transferTo(f);
                    goods.setImg(newName);
                    goodsService.add(goods);
                } catch (IOException e) {
                    e.printStackTrace();
                }
            }
            request.setAttribute("types",goodsService.findAllTypes());
            return "add";
        }
  • 相关阅读:
    pandas:数据分析
    NumPy(数组计算)
    量化投资与python
    量化投资与python
    vue-cli之脚手架
    pycharm与github的使用
    GIT命令
    关于pytest的命令行传参
    python脚本测试websocket接口协议
    python关于type()与生成器generator的用法
  • 原文地址:https://www.cnblogs.com/newbest/p/9226144.html
Copyright © 2011-2022 走看看