SpringMVC 文件上传配置,多文件上传,使用的MultipartFile的实例

下面就是SpringMVC文件上传配置的完整攻略。

SpringMVC 文件上传配置

1. 添加依赖

pom.xml中添加以下依赖:

<dependency>
    <groupId>org.springframework</groupId>
    <artifactId>spring-webmvc</artifactId>
    <version>5.3.6</version>
</dependency>

2. 配置 web.xml 文件

在 web.xml 中添加 SpringMVC 的配置:

<!-- SpringMVC 配置 -->
<servlet>
    <servlet-name>springDispatcherServlet</servlet-name>
    <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
    <init-param>
        <param-name>contextConfigLocation</param-name>
        <param-value>/WEB-INF/springDispatcherServlet-servlet.xml</param-value>
    </init-param>
    <load-on-startup>1</load-on-startup>
</servlet>

<servlet-mapping>
    <servlet-name>springDispatcherServlet</servlet-name>
    <url-pattern>/</url-pattern>
</servlet-mapping>

3. 配置 Spring 的配置文件

/WEB-INF/springDispatcherServlet-servlet.xml 中配置 Spring 的配置文件:

<beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:p="http://www.springframework.org/schema/p" 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.xsd http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc.xsd">

    <!-- 启用 SpringMVC -->
    <mvc:annotation-driven />

    <!-- 配置上传文件大小限制 -->
    <bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver">
        <property name="maxUploadSize" value="5242880"/>
    </bean>

    <!-- Controller 配置 -->
    <context:component-scan base-package="com.yourpackage.controller" />

    <!-- 视图解析器配置 -->
    <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
        <property name="prefix" value="/WEB-INF/views/" />
        <property name="suffix" value=".jsp" />
    </bean>
</beans>

4. 编写 Controller

编写文件上传的 Controller:

@Controller
public class UploadController {

    @RequestMapping(value = "/upload", method = RequestMethod.POST)
    public String upload(@RequestParam("file") MultipartFile file, Model model) {

        String fileName = file.getOriginalFilename();
        try {
            file.transferTo(new File("D:\\uploads\\" + fileName));
            model.addAttribute("message", "文件上传成功");
        } catch (Exception e) {
            model.addAttribute("message", "文件上传失败");
        }
        return "uploads";
    }
}

5. 编写 View

编写上传文件的 View:

<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<html>
<head>
    <title>SpringMVC 文件上传示例</title>
</head>
<body>

<h3>上传文件</h3>
<form method="post" action="${pageContext.request.contextPath}/upload" enctype="multipart/form-data">
    <input type="file" name="file"/>
    <input type="submit" value="上传"/>
</form>

<hr/>

<!-- 文件上传反馈信息 -->
${message}

</body>
</html>

6. 多文件上传示例

如果需要上传多个文件,只需要将 @RequestParam 的类型修改为 MultipartFile[] 即可:

@Controller
public class UploadController {

    @RequestMapping(value = "/upload", method = RequestMethod.POST)
    public String upload(@RequestParam("file") MultipartFile[] files, Model model) {

        try {
            for (MultipartFile file : files) {
                String fileName = file.getOriginalFilename();
                file.transferTo(new File("D:\\uploads\\" + fileName));
            }
            model.addAttribute("message", "文件上传成功");
        } catch (Exception e) {
            model.addAttribute("message", "文件上传失败");
        }
        return "uploads";
    }
}

同时,在 View 中可以使用数组形式的输入框:

<form method="post" action="${pageContext.request.contextPath}/upload" enctype="multipart/form-data">
    <input type="file" name="file"/><br/>
    <input type="file" name="file"/><br/>
    <input type="file" name="file"/><br/>
    <input type="submit" value="上传"/>
</form>

这样就可以同时上传多个文件了。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:SpringMVC 文件上传配置,多文件上传,使用的MultipartFile的实例 - Python技术站

(0)
上一篇 2023年6月25日
下一篇 2023年6月25日

相关文章

  • Centos7 [ubuntu] 安装pycharm2019.1.3并永久破解教程

    Centos7 [ubuntu] 安装PyCharm 2019.1.3并永久破解教程 1. 确认系统版本 在开始安装PyCharm之前,请确保你的CentOS7或Ubuntu系统已经安装了Java SDK,并且已经进行了基本的系统更新。输入以下命令检查Java SDK是否安装成功: java -version 如果Java SDK已经安装,命令行会输出Jav…

    其他 2023年3月28日
    00
  • react中hook介绍以及使用教程

    React中Hook介绍以及使用教程 React是一个流行的JavaScript库,用于构建用户界面。在React中,Hook是一种函数,可以让你在函数组件中使用React的特性。本攻略将详细介绍React中的Hook以及如何使用它们。 什么是Hook? Hook是React 16.8版本引入的新特性。它们允许你在不编写类组件的情况下使用React的特性,如…

    other 2023年7月29日
    00
  • C语言例题讲解指针与数组

    C语言例题讲解指针与数组 本文将通过两个实例,详细讲解指针与数组在C语言中的应用。 实例一:指针与数组的使用 在C语言中,可以通过指针来操作数组,以下是一个简单的示例。 #include <stdio.h> int main() { int arr[5] = {1, 2, 3, 4, 5}; int *p = arr; // 指针指向数组的首地址…

    other 2023年6月25日
    00
  • Android11及以上文件读写权限申请详细介绍

    针对“Android11及以上文件读写权限申请详细介绍”的完整攻略,我将会从以下几个方面进行介绍: Android 11及以上文件读写权限简介 权限申请流程 示例说明 总结 1. Android 11及以上文件读写权限简介 从 Android 11 开始,应用程序需要获得存储权限才能访问外部存储设备上的文件。存储空间的使用分为两种类型:应用内部存储和外部存储…

    other 2023年6月27日
    00
  • iPadOS固件下载地址及升级方法 iPadOS下载

    iPadOS固件下载地址及升级方法 iPadOS是苹果公司为其iPad系列设备开发的操作系统。本攻略将详细介绍如何下载iPadOS固件以及进行升级的方法。 1. 下载iPadOS固件 要下载iPadOS固件,您可以按照以下步骤进行操作: 打开Safari浏览器或您喜欢的其他浏览器。 在地址栏中输入以下网址:https://www.ipsw.me。 在网站上找…

    other 2023年8月4日
    00
  • Linux文件编辑命令vi详细整理(总结)

    以下是“Linux文件编辑命令vi详细整理(总结)” 的完整攻略。 1. 简介 vi是常用的Linux文本编辑器之一,也是SVR4标准操作系统中的标准编辑器。vi具有强大的编辑功能,是Linux各种配置文件和脚本编写的重要工具。虽然vi编辑器使用上比较复杂,但是只要掌握了一些基本的操作方法,就能够高效地进行文件编辑。 2. 基本操作模式 vi有两种基本的操作…

    other 2023年6月26日
    00
  • iOS实现消息推送及原理分析

    iOS实现消息推送及原理分析 什么是消息推送? 消息推送是指在无需打开应用程序的情况下,向手机用户发送通知消息。消息推送可以通过苹果官方提供的APNs(Apple Push Notification service,苹果推送服务)完成。 APNs的工作原理 APNs与苹果设备之间的通信是基于一种专门为该服务设计的二进制协议,这个协议被称为APNs协议。APN…

    other 2023年6月26日
    00
  • MySQL优化案例之隐式字符编码转换

    MySQL优化案例之隐式字符编码转换是一个涉及MySQL字符集和编码的优化技巧,能够帮助开发者避免隐式字符编码转换带来的性能影响。 以下是MySQL优化案例之隐式字符编码转换的完整攻略: 背景和问题 MySQL中字符集和编码是非常重要的概念,不同的字符集和编码对查询和存储的性能影响很大,甚至会带来莫名其妙的问题。在MySQL中,如果查询语句中涉及到多个字段或…

    other 2023年6月25日
    00
合作推广
合作推广
分享本页
返回顶部