Spring Boot实现图片上传功能

下面是关于“SpringBoot实现图片上传功能”的完整攻略:

1. 添加依赖

首先需要在 pom.xml 文件中添加依赖:

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-web</artifactId>
</dependency>

<!-- 添加文件上传依赖 -->
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-web</artifactId>
</dependency>

<dependency>
    <groupId>commons-fileupload</groupId>
    <artifactId>commons-fileupload</artifactId>
    <version>1.3.1</version>
</dependency>

2. 编写 Controller

编写 Controller,实现文件上传的功能。这里我们将允许用户上传一张图片文件,并将其保存在项目根目录下的 uploads 目录中:

@RestController
public class FileUploadController {

    @Value("${file.upload.path}")
    private String uploadDir;

    // 跳转到文件上传页面
    @GetMapping("/upload")
    public String toUploadPage() {
        return "file-upload";
    }

    // 实现文件上传功能
    @PostMapping("/upload")
    public String uploadFile(@RequestParam("file") MultipartFile file, Model model) {
        String fileName = file.getOriginalFilename();
        File dest = new File(uploadDir + fileName);

        try {
            file.transferTo(dest);
            model.addAttribute("msg", "文件上传成功!");
        } catch (IOException e) {
            e.printStackTrace();
            model.addAttribute("msg", "文件上传失败:" + e.getMessage());
        }

        return "file-upload";
    }
}

3. 配置上传文件保存的目录

application.properties 文件中配置上传文件保存的目录:

file.upload.path=/uploads/

4. 实现文件上传页面

最后,我们需要实现一个文件上传的页面,让用户能够方便地上传图片。具体实现如下:

<!DOCTYPE html>
<html>
<head>
    <title>文件上传</title>
</head>

<body>
    <h2>文件上传</h2>
    <form action="/upload" method="post" enctype="multipart/form-data">
        <input type="file" name="file"><br><br>
        <input type="submit" value="上传">
    </form>
    <p th:text="${msg}"></p>
</body>
</html>

示例1:上传单个文件

下面是一个简单的上传单个文件的示例:

  1. 启动 SpringBoot 项目;
  2. 访问 http://localhost:8080/upload,跳转到文件上传页面;
  3. 选择一张图片文件,并点击“上传”按钮;
  4. 如果上传成功,页面上会显示“文件上传成功!”的提示信息;
  5. 查看项目根目录下的 uploads 目录,如果上传的图片文件已经出现在该目录中,说明文件上传成功。

示例2:上传多个文件

上传多个文件的过程跟上传单个文件差不多,只是在 HTML 文件中修改了文件上传的 input 属性,使其允许上传多个文件。具体实现如下:

<!DOCTYPE html>
<html>
<head>
    <title>文件上传</title>
</head>

<body>
    <h2>文件上传</h2>
    <form action="/upload" method="post" enctype="multipart/form-data">
        <input type="file" name="file" multiple><br><br>
        <input type="submit" value="上传">
    </form>
    <p th:text="${msg}"></p>
</body>
</html>

完成多个文件上传的流程跟上传单个文件的流程类似。注意,在 Controller 中需要将文件处理的逻辑修改为循环处理多个文件。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Spring Boot实现图片上传功能 - Python技术站

(0)
上一篇 2023年5月15日
下一篇 2023年5月15日

相关文章

  • Java 异步线程监听与结果回调及异常捕获总结分析

    Java 异步线程监听与结果回调及异常捕获总结分析 在Java中,异步编程是一种处理高并发场景的重要手段,其中线程监听与结果回调的机制尤其重要。本文将详细探讨Java异步线程监听与结果回调及异常捕获的实现方式和优点。 异步线程监听的实现方式 在Java中,实现异步线程监听的方式有两种:使用回调函数或者使用Future。 1. 回调函数实现异步线程监听 所谓回…

    Java 2023年5月27日
    00
  • vs怎么编写java Script项目? VisualStudio创建java Script文件的技巧

    下面是关于如何在 Visual Studio 中编写 JavaScript 项目的攻略。 Visual Studio 创建 JavaScript 项目 首先,打开 Visual Studio,选择“创建新项目”(New Project),然后在弹出的“新建项目”对话框中,选择“JavaScript”类别,然后选择“空白 Node.js Web 应用程序”模板…

    Java 2023年5月26日
    00
  • 深入解析Java的Struts框架中的控制器DispatchAction

    深入解析Java的Struts框架中的控制器DispatchAction DispatchAction的概述 Struts是一个MVC架构的Web框架,其中控制器层由Action实现。DispatchAction是Struts中一个特殊的Action,它根据请求参数的值映射到相应的方法进行处理,相当于一组Action的集合,可以大大简化代码实现。 Dispa…

    Java 2023年5月20日
    00
  • 在linux上建jsp環境

    下面是在Linux上建立JSP环境的完整攻略。 准备工作 在开始建立JSP环境之前,需要确保你的Linux系统中已经安装了Java环境,可以使用以下命令检查Java环境是否已经安装: java -version 如果返回JAVA版本信息,则说明Java已经正确安装。 安装Apache Tomcat 接下来,我们需要安装Apache Tomcat。Tomcat…

    Java 2023年5月19日
    00
  • SpringMVC 异常处理机制与自定义异常处理方式

    当使用 Spring MVC 开发应用时,异常处理是非常重要的一部分。由于操作系统错误、数据库错误等各种问题可能会导致应用程序出现异常,因此在应用程序中正确处理异常是重要的。本文将介绍 Spring MVC 中的异常处理机制及如何自定义异常处理方式。 SpringMVC 异常处理机制 Spring MVC 异常处理机制的核心是将异常抛到控制器的外部并处理。S…

    Java 2023年5月27日
    00
  • springboot 集成dubbo的步骤详解

    下面是关于“Spring Boot集成Dubbo的步骤详解”的完整攻略,包含了以下内容: 环境搭建 引入依赖 编写Dubbo服务接口和实现类 配置Dubbo的服务提供者和消费者 演示实例 环境搭建 在开始前必须确定以下工具: 使用Java 1.8或以上版本 下载并安装ZooKeeper 下载Dubbo 引入依赖 使用Maven管理依赖,导入以下依赖: &lt…

    Java 2023年5月19日
    00
  • Spring-全面详解(学习总结)

    Spring-全面详解(学习总结) Spring是一个开源的Java框架,它提供了一种轻量级的、非侵入式的解决方案,用于构建企业级应用程序。本文将详细讲解Spring框架的各个方面,包括IoC容器、AOP、Spring MVC、Spring Boot等。 IoC容器 IoC(Inversion of Control)是Spring框架的核心,它通过IoC容器…

    Java 2023年5月15日
    00
  • springMvc请求的跳转和传值的方法

    下面我就来详细介绍一下 Spring MVC 请求的跳转和传值的方法。 跳转页面方法 在 Spring MVC 框架中,有多种方法可以实现跳转页面,其中常用的方法有: 1. 重定向(Redirect) 重定向是指在服务器接收到客户端(浏览器)请求后,将该请求转发到另一个 URL 上,使浏览器发起一次新的请求。 在 Spring MVC 中,可以使用以下两种方…

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