zoukankan      html  css  js  c++  java
  • Spring MVC笔记(七) springMVC文件上传

    创建springMVC工程 SpringMVCFileUpload,导入springMVC相关jar以及commons-io.jar、commons-fileupload.jar;

    创建springMVC默认配置文件 SpringMVCFileUpload-servlet.xml:

    <?xml version="1.0" encoding="UTF-8"?>
    <beans xmlns="http://www.springframework.org/schema/beans"
        xmlns:context="http://www.springframework.org/schema/context"
        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:mvc="http://www.springframework.org/schema/mvc"
        xsi:schemaLocation="
       http://www.springframework.org/schema/beans     
       http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
       http://www.springframework.org/schema/context 
       http://www.springframework.org/schema/context/spring-context-3.0.xsd
        http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc-3.0.xsd">
    
        <context:component-scan base-package="com.bwy" />
    
        <bean
            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.commons.CommonsMultipartResolver"/>
    
    </beans>

    创建文件模型 FileModel.java:

    package com.bwy.fileupload;
    
    import org.springframework.web.multipart.MultipartFile;
    
    public class FileModel {
      private MultipartFile file;
    
      public MultipartFile getFile() {
        return file;
      }
      public void setFile(MultipartFile file) {
        this.file = file;
      }
    }

    编写上传页面 fileUpload.jsp:

    <%@ page language="java" pageEncoding="UTF-8"%>
    <%@ taglib prefix="form" uri="http://www.springframework.org/tags/form"%>
    <!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=ISO-8859-1">
    <title>Spring MVC 文件上传</title>
    </head>
    <body>
        <form:form action="/SpringMVCFileUpload/upload.do" method="post" modelAttribute="fileUpload"
            enctype="multipart/form-data">
        请选择一个文件上传:<input type="file" name="file" />
            <input type="submit" value="提交上传" />
        </form:form>
    </body>
    </html>

    上传成功页面 success.jsp:

    <%@ page language="java" 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=ISO-8859-1">
    <title>Insert title here</title>
    </head>
    <body>
        ${fileName},上传成功!
    </body>
    </html>

    编写上传文件控制类:FileUploadController.java:

    package com.bwy.fileupload;
    
    import java.io.File;
    import java.io.IOException;
    
    import javax.servlet.http.HttpServletRequest;
    
    import org.springframework.stereotype.Controller;
    import org.springframework.ui.ModelMap;
    import org.springframework.util.FileCopyUtils;
    import org.springframework.web.bind.annotation.RequestMapping;
    import org.springframework.web.bind.annotation.RequestMethod;
    import org.springframework.web.servlet.ModelAndView;
    
    /**
     * 文件上传控制类
     * 
     * @author Administrator
     *
     */
    @Controller
    public class FileUploadController {
    
      @RequestMapping(value = "/uploadPage", method = RequestMethod.GET)
      public ModelAndView fileUploadPage() {
        return new ModelAndView("fileUpload", "command", new FileModel());
      }
    
      @RequestMapping(value = "/upload.do", method = RequestMethod.POST)
      public String upload(FileModel file, ModelMap model, HttpServletRequest request) {
    
        // 定义文件上传目录
        String fileUploadPath =
            request.getSession().getServletContext().getRealPath("") + File.separator + "upload"
                + File.separator;
    
        // 生成目录
        File uploadFile = new File(fileUploadPath);
        if (!uploadFile.exists()) {
          uploadFile.mkdir();
        }
        try {
    
          // 拷贝文件,假设上传后的文件名为:xx/xx/1.jpg
          FileCopyUtils.copy(file.getFile().getBytes(), new File(fileUploadPath + "1.jpg"));
        } catch (IOException e) {
          e.printStackTrace();
        }
        model.addAttribute("fileName", file.getFile().getOriginalFilename());
        return "success";
      }
    }

    启动tomcat 运行工程:

  • 相关阅读:
    最近重感冒完全不知道知己在记什么

    倾尽一生
    学习笔记,函数
    唯美句
    02 mysql 基础二 (进阶)
    01 mysql 基础一 (进阶)
    16 正则表达式
    15 迭代器、生成器、模块和包
    14 异常
  • 原文地址:https://www.cnblogs.com/weyoung1987/p/8111571.html
Copyright © 2011-2022 走看看