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日

相关文章

  • PHP服务端环境搭建的图文教程(分享)

    下面是 “PHP服务端环境搭建的图文教程(分享)” 的完整攻略: 1. 准备工作 首先,需要安装一个适合自己电脑系统的web服务器软件,比如:Apache、Nginx等,并且进行基本的配置。 其次,需要安装PHP的运行环境,通常这项工作都是在web服务器软件的安装过程中同时完成的。 最后,安装一个数据库系统,MySQL或MariaDB等都可选。 2. 安装步…

    other 2023年6月27日
    00
  • wpf中使用cefsharp

    以下是关于“WPF中使用CefSharp”的完整攻略,包括基本概念、解决方法、示例说明和注意事项。 基本概念 CefSharp是一个基于Chromium的.NET开源项目,可以在WPF应用程序中嵌入Chromium浏览器。使用CefSharp实现在WPF应用程序中显示网页、执行JavaScript代码等功能。 解决方法 以下是在WPF中使用CefSharp的…

    other 2023年5月7日
    00
  • wp手机怎样安装应用程序图文教程

    WP手机如何安装应用程序 1. 在微软商店下载安装应用程序 WP手机可以通过微软商店安装应用程序,具体操作步骤如下: 步骤1:打开微软商店 在WP手机桌面上找到“商店”图标,点击打开。 步骤2:搜索应用程序 在商店首页右上方的搜索框中输入应用程序名称或关键词,或者在分类列表中选择相应的应用程序类型进行查找。 步骤3:安装应用程序 点击应用程序图标进入详情页面…

    other 2023年6月25日
    00
  • vivoy93s如何查看内存?

    Vivo Y93s 如何查看内存 Vivo Y93s 是一款智能手机,可以通过以下步骤查看其内存信息: 打开手机设置:在主屏幕上找到并点击 \”设置\” 图标。 进入存储设置:在设置菜单中,向下滚动并点击 \”存储\” 选项。 查看内存信息:在存储设置页面,您将看到手机的存储使用情况。其中包括内部存储和外部存储(如果有的话)。点击 \”内部存储\” 选项以查…

    other 2023年8月1日
    00
  • Linux中如何修改~/.bashrc或/etc/profile设置环境变量

    要在Linux中设置环境变量,我们一般会修改~/.bashrc或/etc/profile文件。接下来,我将为你提供详细的攻略。 修改~/.bashrc文件设置环境变量 打开终端,输入以下命令查看当前环境变量: $ env 打开~/.bashrc文件: $ vim ~/.bashrc 在文件末尾添加以下内容(例如添加一个名为MYVAR的环境变量): expor…

    other 2023年6月27日
    00
  • Java超详细分析继承与重写的特点

    Java超详细分析继承与重写的特点攻略 什么是继承 继承是面向对象编程中的重要特性之一,它允许一个类继承另一个类的属性和方法。继承的类称为子类,被继承的类称为父类。在Java中,使用关键字extends来实现继承。 继承的特点 继承具有以下特点: 子类可以继承父类的非私有属性和方法。 子类可以在不改变父类的情况下扩展其功能。 父类的私有属性和方法不会被子类继…

    other 2023年6月26日
    00
  • Spring整合Mybatis 扫描注解创建Bean报错的解决方案

    问题解析 在 Spring 整合 Mybatis 时,我们通常会使用注解的方式配置 Mybatis。在扫描 mapper 接口和 mapper.xml 文件时,我们需要在配置文件中添加以下两行配置: <bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">…

    other 2023年6月26日
    00
  • jenkins自动化打包vue项目

    以下是关于Jenkins自动化打包Vue项目的完整攻略,包含两个示例。 Jenkins自动化打包Vue项目 Jenkins是一个流行的自动化构建工具,可以帮助我们自化构建和部署应用程序。在Vue项目中,我们可以使用Jenkins自动化打包Vue项目,从而提高我们的开发效率。以下是Jenkins自动化打包Vue项目的详细攻略。 1. 安装Jenkins 在使用…

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