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 运行工程:

原文地址:https://www.cnblogs.com/weyoung1987/p/8111571.html

时间: 2024-11-05 17:24:04

Spring MVC笔记(七) springMVC文件上传的相关文章

Spring MVC(四)文件上传

文件上传步骤 1.写一个文件上传的页面 2.写一个文件上传的控制器 注意: 1.method="post" 2.enctype="multipart/form-data" 3.文件类型上传组件 type="file" 4.接收文件参数需要使用MultipartFile 类型的参数 5.配置文件解析器,文件解析器 id 必须是 "multipartResolver" 1 <%@ page language="ja

SpringMVC文件上传——bean的配置【org.springframework.web.multipart.commons.CommonsMultipartResolver】

一.简介 Spring MVC支持一个通用的多路上传解析器CommonsMultipartResolver,在Spring的配置文件中对CommonsMultipartResolver Bean进行配置时,有一些可选的属性配置. 二.分析 经过百度和查看SpringMVC的API文档都没有发现相关的详细配置介绍,无可奈何只能查看源代码寻找蛛丝马迹: 在Spring配置文件applicationContext.xml中配置了CommonsMultipartResolver Bean后,按 " Ct

springmvc文件上传AND jwt身份验证

SpringMVC文件上传 思路:1.首先定义页面,定义多功能表单(enctype=“multipart/form-data”)2.在Controller里面定义一个方法,用参数(MultipartFile)来接收前台传递过来的文件对象3.然后文件上传就是把文件从一个地方(本地)复制到另外一个地方(服务器) 添加pom依赖 <dependency> <groupId>commons-fileupload</groupId> <artifactId>commo

springmvc文件上传2中方法

基于前面文章的基础上. 一.准备 需要的jar  二.配置 1.  spmvc-servlet.xml <?xml version="1.0" encoding="UTF-8" ?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" x

springmvc文件上传及表单数据封装

补充: form表单需要提交时间,springmvc封装到实体类的Date字段时,丢失时分秒,可以在controller中添加     @InitBinder     public void initBinder(WebDataBinder binder) {         SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");         dateFormat.setLenient(f

eclipse中导入jdk源码、SpringMVC注解@RequestParam、SpringMVC文件上传源码解析、ajax上传excel文件

eclipse中导入jdk源码:http://blog.csdn.net/evolly/article/details/18403321, http://www.codingwhy.com/view/799.html. ------------------------------- SpringMVC注解@RequestParam:http://825635381.iteye.com/blog/2196911. --------------------------- SpringMVC文件上传源

PKPJIB七牛文件上传管理

圭拉镗夯後 PKPJIB七牛文件上传管理

一、虚拟环境.二、路由配置主页与404.三、2.x路由分发.四、伪静态.五、request对象.六、FBV与CBV.七、文件上传.

一.虚拟环境 ''' 解决版本共存 1. 用pycharm选择File点击NewProject然后选择virtualenv创建一个纯净环境 2. 打开下载的目录将venv文件夹下的所有文件(纯净的环境)copy到需要指定长期使用的文件夹下 3. 再次创建项目时,将该环境(指定长期使用的文件夹下Scripts文件夹中的python.exe文件)添加到pycharm环境选择(System Interpreter)中 4. 为该环境添加需要处理的版本共存包 ''' 二.路由配置主页与404 ''' 路

Spring Boot 2.X 实现文件上传(三)

使用 SpringBoot 项目完成单个.多个文件的上传处理,并将上传的文件保存到指定目录下. 代码演示案例 所有的 HTML 页面文件 index.html <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>选择上传文件类型</title> </head> <script languag