锋盈数科-知识库 Logo
首页
软件开发
计算机基础
Hello Halo
新手必读
关于本知识库
登录 →
锋盈数科-知识库 Logo
首页 软件开发 计算机基础 Hello Halo 新手必读 关于本知识库
登录
  1. 首页
  2. 软件开发
  3. JAVA
  4. Spring Boot实现图片上传和展示

Spring Boot实现图片上传和展示

0
  • JAVA
  • 发布于 2024-07-30
  • 0 次阅读
黄健
黄健

原文链接:https://blog.csdn.net/fanjianwucmx/article/details/134669053

Spring Boot实现图片上传和展示

本文将介绍如何使用Spring Boot框架搭建后端服务,实现接收前端上传的图片并保存到resources/images目录下。同时,我们还将展示如何在前端编写一个HTML页面,实现上传图片和从resources/images目录下获取图片并展示的功能。

后端实现

使用Spring Boot来快速搭建后端服务,以下是实现步骤:

创建Spring Boot项目并导入相关依赖。

创建一个Controller类,定义一个POST请求接口用于接收上传的图片,并将其保存到resources/images目录下。代码示例:

@RestController

public class ImageUploadController {

    @Value("${upload.path}")

    private String uploadPath;

    @PostMapping("/upload")

    public String uploadImage(@RequestParam("file") MultipartFile file) {

        try {

            // 获取文件名

            String fileName = file.getOriginalFilename();

            // 指定保存路径

            String filePath = uploadPath + "/" + fileName;

            // 保存文件到本地

            file.transferTo(new File(filePath));

            return "上传成功";

        } catch (IOException e) {

            e.printStackTrace();

            return "上传失败";

        }

    }

}

在上述代码中,我们使用@Value注解注入了文件保存路径uploadPath,该路径配置在application.properties或application.yml文件中。

启动Spring Boot应用,后端服务即可接收并保存上传的图片。

前端实现

在前端,我们将使用HTML和JavaScript来实现图片上传和展示功能。以下是一个示例HTML页面的代码:

<!DOCTYPE html>

<html>

<head>

    <title>图片上传与展示</title>

</head>

<body>

    <h2>上传图片</h2>

    <input type="file" id="imageInput">

    <button onclick="uploadImage()">上传图片</button>

    

    <h2>展示图片</h2>

    <div id="imageContainer"></div>

    <script>

        function uploadImage() {

            var fileInput = document.getElementById('imageInput');

            var file = fileInput.files[0];

            

            var formData = new FormData();

            formData.append('file', file);

            

            fetch('/upload', {

                method: 'POST',

                body: formData

            })

            .then(response => response.text())

            .then(result => {

                if (result === '上传成功') {

                    showImage(file.name);

                } else {

                    console.log('上传失败');

                }

            })

            .catch(error => console.error('Error:', error));

        }

        

        function showImage(fileName) {

            var imageContainer = document.getElementById('imageContainer');

            var imgElement = document.createElement('img');

            imgElement.src = 'resources/images/' + fileName;

            imageContainer.appendChild(imgElement);

        }

    </script>

</body>

</html>

在上述代码中,我们创建了一个简单的HTML页面,包含一个文件选择框和一个上传按钮。当用户选择图片文件并点击上传按钮时,通过JavaScript代码将选中的图片文件发送到后端的/upload接口。上传成功后,调用showImage函数,在页面上展示上传的图片。

请确保将该HTML文件放置在与resources目录同级的目录下。

效果展示

标签: #JAVA 991
相关文章

Spring 实现 3 种异步接口 2024-10-18 09:07

大家好,我是苏三~ 如何处理比较耗时的接口? 这题我熟,直接上异步接口,使用 Callable、WebAsyncTask 和 DeferredResult、CompletableFuture等均可实现。 但这些方法有局限性,处理结果仅返回单个值。在某些场景下,如果需要接口异步处理的同时,还持续不断地

重学SpringBoot3-集成Redis(五)之布隆过滤器 2024-10-08 11:24

更多SpringBoot3内容请关注我的专栏:《SpringBoot3》 期待您的点赞👍收藏⭐评论✍ 重学SpringBoot3-集成Redis(五)之布隆过滤器 1. 什么是布隆过滤器? * 基本概念 适用场景 2. 使用 Redis 实现布隆过滤器 * 项目依赖 Redis 配置

SpringBoot整合异步任务执行 2024-10-08 11:24

同步任务: 同步任务是在单线程中按顺序执行,每次只有一个任务在执行,不会引发线程安全和数据一致性等 并发问题 同步任务需要等待任务执行完成后才能执行下一个任务,无法同时处理多个任务,响应慢,影响用 户体验 异步任务: 异步任务是在多线程中同时执行,多个任务可以并发执行,同时处理多个请求,响应快,资源

springboot kafka多数据源,通过配置动态加载发送者和消费者 2024-10-08 11:24

前言 最近做项目,需要支持kafka多数据源,实际上我们也可以通过代码固定写死多套kafka集群逻辑,但是如果需要不修改代码扩展呢,因为kafka本身不处理额外逻辑,只是起到削峰,和数据的传递,那么就需要对架构做一定的设计了。 准备test kafka本身非常容易上手,如果我们需要单元测试,引入ja

SpringBoot 集成 Redis 2024-10-08 11:24

一:SpringBoot 集成 Redis ①Redis是一个 NoSQL(not only)数据库, 常作用缓存 Cache 使用。 ②Redis是一个中间件、是一个独立的服务器;常用的数据类型: string , hash ,set ,zset , list ③通过Redis客户端可以使用多种语

SpringBoot整合QQ邮箱 2024-10-08 11:24

SpringBoot可以通过导入依赖的方式集成多种技术,这当然少不了我们常用的邮箱,现在本章演示SpringBoot整合QQ邮箱发送邮件…. 下面按步骤进行: 1.获取QQ邮箱授权码 1.1 登录QQ邮箱 1.2 开启SMTP服务 找到下图中的SMTP服务区域,如果当前账号未开启的话自己手动开启。

目录

IT 外包服务商

  • 意见投递
  • zyf6619

软件开发应用

主菜单

  • 首页
  • 软件开发
  • 计算机基础
  • Hello Halo
  • 新手必读
  • 关于本知识库
Copyright © 2024 your company All Rights Reserved. Powered by Halo.