antd upload手动上传_CKEditor 5 + SpringBoot实战(四):SpringBoot 实现文件上传

本文介绍了在SpringBoot应用中实现文件上传,特别是图片上传的功能。涉及到引入依赖、设置存储路径、上传配置、文件上传控制器的实现,并通过Postman进行上传测试。文件上传的核心是通过 CommonsMultipartFile 处理客户端上传的文件,并将其存储到服务器的特定目录,同时返回文件的相对地址。
摘要由CSDN通过智能技术生成

在本系列的文章中,我将介绍如何在Spring Boot Application中使用CKEditor编辑器。介绍的内容包括基本环境的搭建,文件上传,SpringData JPA数据持久化,CKEditor5的安装,CKEditor图片上传,CKEditor插入视频,获取/设置CKEditor内容等。

b19a30fceb4cf0be7ed9f1afa544779f.png

在本章节中,主要介绍的内容是在SpringBoot中实现图片上传功能,其中包括上传路径的设置,图片路径映射和上传业务代码的编写。

文件上传

所谓的文件上传就是将客户端的资源通过网络传输到服务端,其本质就是IO流操作。服务端通过IO流读取客户端数据,然后对数据进行解析,获取目标文件数据后,将数据存储到服务端磁盘中。

引入依赖

要实现文件上传,首先需要将所需要的依赖包导入到项目中。这里我们仅导入commons-fileupload和commons-io依赖包。通常,commons-fileupload依赖需要和commons-io一起搭配使用,其中封装了大量的用于操作文件上传的功能,可以帮助我们简化文件上传代码的编写。打开pom.xml配置文件,并加入如下的配置:

commons-fileupload    commons-fileupload    1.3.3commons-io    commons-io    2.6

存储路径

上面我们提到,文件上传的本质就是通过IO流将客户端数据存储到服务端的磁盘上。因此,我们需要在服务端的磁盘上规划一个存储空间,用于存储客户端上传的文件。这里我将客户端上传的文件存储到当前项目的类路径下的images文件夹中。

首先,在com.ramostear.ckeditor.common包中创建一个Consts类,然后通过ClassPathResource类获得当前项目的类路径。代码如下:

package com.ramostear.ckeditor.common;import org.springframework.core.io.ClassPathResource;import org.springframework.core.io.Resource;import java.io.IOException;public class Consts {    public static String FILE_STORAGE_ROOT = getRootPath();    private static String getRootPath(){        try {            Resource resource = new ClassPathResource("");            return resource.getFile().getAbsolutePath();        } catch (IOException e) {            e.printStackTrace();        }        return null;    }}

在代码中,获取到的类路径赋值给了公有静态常量 FILE_STORAGE_ROOT,该常量将在图片路径映射和文件上传业务代码中被使用。

上传配置

一般情况下,客户端的数据可以通过Form表单传递到服务端,但如果是图片等大文件数据,服务端将无法直接解析这些数据(如果是图片文件,也可以将图片通过Base64转码后,将获得的二进制文本传递到服务端),因此,我们需要配置一个专门用于解析客户端上传文件的解析器,另外,如果上传的是图片文件,通常需要在上传成功后显示这些图片,在SpringBoot中,客户端是无法直接去加载这些文件的,这就要求我们还得手动去映射图片地址。

下面,将介绍如何在SpringBoot中配置文件上传的相关参数。最简单的配置方式是配置类继承 WebMvcConfigurationSupport类,然后重写其中对应的方法。首先是文件解析器,这里我们实例化一个CommonsMultipartResolver来作为上传文件的解析器,然后设置其允许上传文件的大小和文件的字符编码,代码如下:

@Beanpublic CommonsMultipartResolver multipartResolver(){    CommonsMultipartResolver resolver = new CommonsMultipartResolver();    resolver.setMaxUploadSiz
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值