zoukankan      html  css  js  c++  java
  • SpringMVC之文件上传

    1.web文件的配置

    <?xml version="1.0" encoding="UTF-8"?>
    <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://xmlns.jcp.org/xml/ns/javaee" xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd" id="WebApp_ID" version="3.1">
      
      <!--这个是项目名,需要更改  -->
      <display-name>FileUpload</display-name>
      <welcome-file-list>
        <welcome-file>index.html</welcome-file>
        <welcome-file>index.htm</welcome-file>
        <welcome-file>index.jsp</welcome-file>
        <welcome-file>default.html</welcome-file>
        <welcome-file>default.htm</welcome-file>
        <welcome-file>default.jsp</welcome-file>
      </welcome-file-list>
      
      
      <servlet>
            <servlet-name>springDispatcherServlet</servlet-name>
            <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
            <init-param>
                <param-name>contextConfigLocation</param-name>
                
                <!--spring bean configuration file名需要自己 配置-->
                <param-value>classpath:cont.xml</param-value>
            </init-param>
            <load-on-startup>1</load-on-startup>
        </servlet>
    
        <!-- Map all requests to the DispatcherServlet for handling -->
        <servlet-mapping>
            <servlet-name>springDispatcherServlet</servlet-name>
            <url-pattern>/</url-pattern>
        </servlet-mapping>
        
        
        <filter>
            <filter-name>CharacterEncodingFilter</filter-name>
            <filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>
            <init-param>
                <param-name>encoding</param-name>
                <param-value>utf-8</param-value>
            </init-param>
        </filter>
     
        <filter-mapping>
            <filter-name>CharacterEncodingFilter</filter-name>
            <url-pattern>/*</url-pattern>
        </filter-mapping>
      
          <filter>
            <filter-name>HiddenHttpMethodFilter</filter-name>
    <filter-class>org.springframework.web.filter.HiddenHttpMethodFilter</filter-class> </filter> <filter-mapping> <filter-name>HiddenHttpMethodFilter</filter-name> <url-pattern>/*</url-pattern> </filter-mapping> </web-app>

    2.spring bean configuration file文件的配置

    <?xml version="1.0" encoding="UTF-8"?>
    <beans xmlns="http://www.springframework.org/schema/beans"
        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
        xmlns:context="http://www.springframework.org/schema/context"
        xmlns:mvc="http://www.springframework.org/schema/mvc"
        xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
            http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-4.0.xsd
            http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc-4.0.xsd">
        
        <context:component-scan base-package="com.tyd"></context:component-scan>
        
        
        <bean  class="org.springframework.web.servlet.view.InternalResourceViewResolver">
            <property name="prefix" value="/WEB-INF/views/"></property>
            <property name="suffix" value=".jsp"></property>
         
        </bean>
        
        <mvc:default-servlet-handler/>
        <mvc:annotation-driven></mvc:annotation-driven>
        
        <!--一下是配置拦截器请忽略  -->
        <bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver">
                <property name="defaultEncoding" value="utf-8"></property>
                <!-- 以字节为单位 -->
                <property name="maxUploadSize" value="1024000"></property>
        </bean>
        
        <mvc:interceptors>
            <bean class="com.tyd.interceptor.MyInterceptor"></bean>
        </mvc:interceptors>
        
        <mvc:interceptors>
                <bean class="com.tyd.interceptor.Interception2"></bean>
        </mvc:interceptors>
        
    
    </beans>

    3.java文件的编写:

    @RequestMapping(value="/fileUpload",method=RequestMethod.POST)
        public String testUpload(HttpServletRequest request,@RequestParam(value="desc",required=false) String desc,@RequestParam("picture") CommonsMultipartFile file){
            
            System.out.println(desc);
            System.out.println(file.getOriginalFilename());
            ServletContext servletContext = request.getServletContext();
            
            String realPath = servletContext.getRealPath("/upload");
            System.out.println(realPath);
            File file1 = new File(realPath);
            if(!file1.exists()){
                file1.mkdir();
            }
            OutputStream out;
            InputStream in;
            String prefix = UUID.randomUUID().toString();
            
            prefix = prefix.replace("-","");
            String fileName = prefix+"_"+file.getOriginalFilename();
            System.out.println(fileName);
            
            try {
                out = new FileOutputStream(new File(realPath+"\"+fileName));
                in = file.getInputStream();
                //直接写输入输出流
                byte[] buffer=new byte[1024];
                int ben=0;
                boolean bl=true;
                while(bl){
                    ben=in.read(buffer);
                    if(ben==-1){
                        bl=false;
                    }
                    else{
                        out.write(buffer);
                        out.flush();
                    }    
                }
                //调用方法写输入输出流
    //            IOUtils.copy(in, out);
                out.close();
                in.close();
            } catch (IOException e) {
                e.printStackTrace();
            }
            return "success";
        
        }

     4.jsp文件编辑

    <%@ page language="java" contentType="text/html; charset=UTF-8"
        pageEncoding="UTF-8"%>
    <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
    <title>Insert title here</title>
    <script type="text/javascript" src="js/jquery-1.9.1.min.js"></script>
    </head>
    <body>
        <form action="${pageContext.request.contextPath}/fileUpload" method="post" enctype="multipart/form-data">
            描述:<input type="text" name="desc"><br>
            file:<input type="file" name="picture"><br>
            <input type="submit" value="提交">
            
        </form>
    
            
    </body>
    </html>

     文件下载参照:http://www.cnblogs.com/TYDBLOG/p/7424971.html

    文件所需包下载:

    4.相关包下载:(导入包时直接将文件复制到WEB-INF/lib文件夹下即可)

    链接:http://pan.baidu.com/s/1hrYKLfu

    密码:ixgj

  • 相关阅读:
    CSLA服务端如何使用多线程的解决方案
    一片马蜂窝文章
    VB.NET和C#之间的语法不同比较
    [软件推荐]jQuery,JavaScript,HTML,CSS,PHP,MySQL,正则表达式 CHM帮助手册
    使用jQuery.Validate进行客户端验证
    知道AutoHotKey
    数据库设计问题
    [书籍推荐]为了自己的钱包,为了自己的时间——分享一下自己的淘书经验
    策略模式4
    SQLiteHelperSQLite帮助类
  • 原文地址:https://www.cnblogs.com/TYDBLOG/p/7423103.html
Copyright © 2011-2022 走看看