zoukankan      html  css  js  c++  java
  • 初学SpringMVC,使用MVC进行文件上传

    最近在做一个文件上传的功能,走了不少弯路,话不多说,直接上代码:

    导入各种jar包,首先是applicationContext.xml配置文件中:

    1 <!-- 配置文件解析器 -->
    2       <bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver"> 
    3     </bean>
    View Code

    写两个前端页面:upLoad.jsp

    1 <body>
    2     <form action="upload.do" method="post" enctype="multipart/form-data">
    3           姓名:<input type="text" name="username"/><br>
    4           头像:<input type="file" name="mf"/><br>
    5           姓名:<input type="submit" value="上传"/>
    6     </form>
    7 </body>
    View Code

    show.jsp

    1 <body>
    2      <h1>head image</h1>
    3      <img alt="" src="${image }" style=" 400px;height: 500px">
    4 </body>
    View Code

    然后进入正题,写一个上传的战士页面的controller

    @RequestMapping("/toUpload.do")  //SpringMVC的映射标注
        public String toUpload(){
            return "upload";
        }

    然后

     1 @Controller
     2 public class FileUploadController { // MultipartFile 用于接受文件对象
     3     @RequestMapping("/upload.do") // MultipartFile用于接受用户名和数据,否则文件上传时候也上encytype后悔接收不到数据
     4     public String upload(String username, MultipartFile mf, HttpServletRequest req) {
     5 
     6         System.out.println(username + "||" + mf.getOriginalFilename() + "||" + mf.getSize());
     7         // 把文件写入响应路径下
     8         String realpath = req.getServletContext().getRealPath("images");// 获取到当前文件夹的真是路径
     9         String orName = mf.getOriginalFilename();// 获取文件的原始名字
    10         String fileName = System.currentTimeMillis() + orName.substring(orName.lastIndexOf("."));// 修改上传文件的名字,时间加后缀
    11         String filePath = realpath + "/" + fileName;
    12         System.out.println(filePath);
    13         File file = new File(filePath);// 创建一个文件对象
    14         try {
    15             mf.transferTo(file);// 将文件写入到路径中
    16         } catch (IllegalStateException e) {
    17             e.printStackTrace();
    18         } catch (IOException e) {
    19             e.printStackTrace();
    20         }
    21         req.setAttribute("image", "images/" + fileName);
    22         return "show";
    23     }
    24 }
    View Code

    OK!,大功告成!

  • 相关阅读:
    怎么修改android飞行模式wifi
    斐讯n1盒子装远程迅雷
    Spring使用大全
    面向对象7大设计原则
    Mybatis之SqlNode解析
    【转载】MongoDB的C#驱动程序教程
    【转载】 mongodb C# 基本类库
    【转载】列举MongoDB C#驱动的几个Query方法
    【转载】MongoDB开发学习
    【转载】sql全国省市区数据库建表过程
  • 原文地址:https://www.cnblogs.com/hx1098/p/9326035.html
Copyright © 2011-2022 走看看