• Spring MVC上传文件


    Spring MVC上传文件

    1.Web.xml中添加:

        <servlet>
            <servlet-name>springmvc</servlet-name>
            <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
            <load-on-startup>1</load-on-startup>
            <init-param>
                <param-name>contextConfigLocation</param-name>
                <param-value>classpath:springmvc-servlet.xml</param-value>
            </init-param>
            <load-on-startup>1</load-on-startup>
            <multipart-config>
                <max-file-size>5242880</max-file-size> <!--上传单个文件的最大限制5MB -->
                <max-request-size>20971520</max-request-size> <!--请求的最大限制20MB,上传多个文件总共大小 -->
                <file-size-threshold>0</file-size-threshold> <!--当文件的大小超过临界值时将写入磁盘 -->
            </multipart-config>
        </servlet>
        <!--拦截所有请求 -->
        <servlet-mapping>
            <servlet-name>springmvc</servlet-name>
            <url-pattern>/</url-pattern>
        </servlet-mapping>

    2.Spring MVC配置文件中添加:

        <!-- 视图解析器 -->
        <bean id="internalResourceViewResolver"
              class="org.springframework.web.servlet.view.InternalResourceViewResolver">
            <property name="prefix" value="/WEB-INF/jsp/" />
            <property name="suffix" value=".jsp" />
        </bean>
    
        <bean id="multipartResolver"
              class="org.springframework.web.multipart.support.StandardServletMultipartResolver">
        </bean>

    3. 添加一个控制器

    @Controller
    @RequestMapping("/fileupload")
    public class FileUploadController {
    
        @RequestMapping("page")
        public String file(Model model){
            return "fileupload";
        }
    
        @RequestMapping(value="/saveFile",method=RequestMethod.POST)
        public String saveFile(Model model,MultipartFile[] files,HttpServletRequest request) throws Exception{
    
            //文件存放的位置
            String path=request.getSession().getServletContext().getRealPath("/files");
            System.out.println(path);
            String ret="";
            for (MultipartFile file : files) {
                //保存文件
                File tempFile=new File(path, file.getOriginalFilename());
                file.transferTo(tempFile);
                ret+="<img src='../files/"+file.getOriginalFilename()+"' width='300' />";
            }
            model.addAttribute("images", ret); 
    return "fileupload";
    }
    }

    4.文件上传页面 fileupload.jsp

    <%@ page language="java" contentType="text/html;charset=UTF-8" pageEncoding="UTF-8"%>
    <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
    <!DOCTYPE html>
    <html>
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
        <title>fileupload</title>
    </head>
    <body>
    <h2>fileupload</h2>
    <form action="saveFile" method="post"  enctype="multipart/form-data">
        <p>
            <label for="files">文件:</label>
            <input type="file" name="files" id="files" multiple="multiple" />
        </p>
        <p>
            <button>提交</button>
        </p>
        <p>${images}</p>
    </form>
    </body>
    </html>

    5.浏览器访问

    end

  • 相关阅读:
    Shell脚本实现用户数据导入
    Sping Cloud 微服务框架学习
    Redis学习笔记
    HTML+CSS实现简单三级菜单
    CSS Float浮动所带来的奇怪现象
    CSS如何清除浮动流的多种方案
    ECMAScript/JS 基础知识讲解
    Python的生成器
    Python包的导入说明
    Paramiko模块简单使用
  • 原文地址:https://www.cnblogs.com/luangeng/p/6221043.html
Copyright © 2020-2023  润新知