zoukankan      html  css  js  c++  java
  • spring mvc(注解)上传文件的简单例子

    spring mvc(注解)上传文件的简单例子,

    这有几个需要注意的地方
    1.form的enctype=”multipart/form-data” 这个是上传文件必须的


    2.applicationContext.xml中 <bean id=”multipartResolver”

    class=”org.springframework.web.multipart.commons.CommonsMultipartResolver”/> 关于文件上传的配置不能少

    3、亲这两个jar包不能少哦,之前就是因为少了这个两个jar,一直报一些奇葩的错,给我累了个半死~(版本没什么要求)

    commons-fileupload-1.2.2.jar

    commons-io-2.0.1.jar

    大家可以看具体代码如下:

    web.xml

    [html] view plain copy
     
     print?
    1. <?xml version="1.0" encoding="UTF-8"?>  
    2. <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" id="WebApp_ID" version="2.5">  
    3.   <display-name>webtest</display-name>  
    4.   
    5.   <listener>  
    6.         <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>  
    7.     </listener>  
    8.     <context-param>  
    9.         <param-name>contextConfigLocation</param-name>  
    10.         <param-value>  
    11.             /WEB-INF/config/applicationContext.xml  
    12.             /WEB-INF/config/codeifAction.xml  
    13.         </param-value>  
    14.     </context-param>  
    15.   
    16.     <servlet>  
    17.         <servlet-name>dispatcherServlet</servlet-name>  
    18.         <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>  
    19.         <init-param>  
    20.             <param-name>contextConfigLocation</param-name>  
    21.             <param-value>/WEB-INF/config/codeifAction.xml</param-value>  
    22.         </init-param>  
    23.         <load-on-startup>1</load-on-startup>  
    24.     </servlet>  
    25.     <!-- 拦截所有以do结尾的请求 -->  
    26.     <servlet-mapping>  
    27.         <servlet-name>dispatcherServlet</servlet-name>  
    28.         <url-pattern>*.do</url-pattern>  
    29.     </servlet-mapping>  
    30.   
    31.   <welcome-file-list>  
    32.     <welcome-file>index.do</welcome-file>  
    33.   </welcome-file-list>  
    34. </web-app>  


     

    applicationContext.xml

    [html] view plain copy
     
     print?
    1. <?xml version="1.0" encoding="UTF-8"?>  
    2. <beans xmlns="http://www.springframework.org/schema/beans"  
    3.     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:p="http://www.springframework.org/schema/p"  
    4.     xmlns:context="http://www.springframework.org/schema/context"  
    5.     xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd  
    6.     http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.0.xsd"  
    7.     default-lazy-init="true">  
    8.   
    9.     <!-- 启动Spring MVC的注解功能,完成请求和注解POJO的映射 -->  
    10.     <bean class="org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter" lazy-init="false" />  
    11.   
    12.     <!-- 另外最好还要加入DefaultAnnotationHandlerMapping,不然会被 XML或其它的映射覆盖! -->  
    13.     <bean class="org.springframework.web.servlet.mvc.annotation.DefaultAnnotationHandlerMapping" />  
    14.   
    15.     <!-- 对模型视图名称的解析,即在模型视图名称添加前后缀 -->  
    16.     <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver" p:prefix="/WEB-INF/jsp/" p:suffix=".jsp" />  
    17.   
    18.     <!-- 支持上传文件 -->  
    19.     <bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver"/>  
    20.   
    21. </beans>  


     

    codeifAction.xml

    [html] view plain copy
     
     print?
    1. <?xml version="1.0" encoding="UTF-8"?>  
    2. <beans xmlns="http://www.springframework.org/schema/beans"  
    3.     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:context="http://www.springframework.org/schema/context"  
    4.     xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd  
    5.     http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.0.xsd"  
    6.     default-lazy-init="true">  
    7.   
    8.     <bean id="uploadAction" class="com.codeif.action.UploadAction" />  
    9.   
    10. </beans>  


     

    UploadAction.java

    [java] view plain copy
     
     print?
    1. package com.codeif.action;  
    2.   
    3. import java.io.File;  
    4. import java.util.Date;  
    5.   
    6. import javax.servlet.http.HttpServletRequest;  
    7.   
    8. import org.springframework.stereotype.Controller;  
    9. import org.springframework.ui.ModelMap;  
    10. import org.springframework.web.bind.annotation.RequestMapping;  
    11. import org.springframework.web.bind.annotation.RequestParam;  
    12. import org.springframework.web.multipart.MultipartFile;  
    13.   
    14. @Controller  
    15. public class UploadAction {  
    16.   
    17.     @RequestMapping(value = "/upload.do")  
    18.     public String upload(@RequestParam(value = "file", required = false) MultipartFile file, HttpServletRequest request, ModelMap model) {  
    19.   
    20.         System.out.println("开始");  
    21.         String path = request.getSession().getServletContext().getRealPath("upload");  
    22.         String fileName = file.getOriginalFilename();  
    23. //        String fileName = new Date().getTime()+".jpg";  
    24.         System.out.println(path);  
    25.         File targetFile = new File(path, fileName);  
    26.         if(!targetFile.exists()){  
    27.             targetFile.mkdirs();  
    28.         }  
    29.   
    30.         //保存  
    31.         try {  
    32.             file.transferTo(targetFile);  
    33.         } catch (Exception e) {  
    34.             e.printStackTrace();  
    35.         }  
    36.         model.addAttribute("fileUrl", request.getContextPath()+"/upload/"+fileName);  
    37.   
    38.         return "result";  
    39.     }  
    40.   
    41. }  


     

    index.jsp

    [html] view plain copy
     
     print?
    1. <%@ page pageEncoding="utf-8"%>  
    2. <!DOCTYPE html>  
    3. <html>  
    4. <head>  
    5. <meta charset="utf-8">  
    6. <title>上传图片</title>  
    7. </head>  
    8. <body>  
    9. <form action="upload.do" method="post" enctype="multipart/form-data">  
    10. <input type="file" name="file" /> <input type="submit" value="Submit" /></form>  
    11. </body>  
    12. </html>  


     

    WEB-INF/jsp/下的result.jsp

    [html] view plain copy
     
     print?
      1. <%@ page pageEncoding="utf-8"%>  
      2. <!DOCTYPE html>  
      3. <html>  
      4. <head>  
      5. <meta charset="utf-8">  
      6. <title>上传结果</title>  
      7. </head>  
      8. <body>  
      9. <img alt="" src="${fileUrl }" />  
      10. </body>  
      11. </html>  
  • 相关阅读:
    帝国 标签模板 使用程序代码 去除html标记 并 截取字符串
    iis6 伪静态 iis配置方法 【图解】
    您来自的链接不存在 帝国CMS
    帝国cms Warning: Cannot modify header information headers already sent by...错误【解决方法】
    .fr域名注册 51元注册.fr域名
    帝国网站管理系统 恢复栏目目录 建立目录不成功!请检查目录权限 Godaddy Windows 主机
    星外虚拟主机管理平台 开通数据库 出现Microsoft OLE DB Provider for SQL Server 错误 '8004' 从字符串向 datetime 转换失败
    ASP.NET 自定义控件学习研究
    CSS层叠样式表之CSS解析机制的优先级
    ASP.NET程序员工作面试网络收藏夹
  • 原文地址:https://www.cnblogs.com/xiohao/p/5273102.html
Copyright © 2011-2022 走看看