iis服务器助手广告广告
返回顶部
首页 > 资讯 > 后端开发 > Python >SpringBoot上传和下载文件的原理解析
  • 419
分享到

SpringBoot上传和下载文件的原理解析

2024-04-02 19:04:59 419人浏览 薄情痞子

Python 官方文档:入门教程 => 点击学习

摘要

技术概述 我们的项目是实现一个论坛。在论坛上发布博客时应该要可以上传文件,用户阅读博客是应该要可以下载文件。于是我去学习了SpringBoot的上传和下载文件,我感觉技术的难点在于使

技术概述

我们的项目是实现一个论坛。在论坛上发布博客时应该要可以上传文件,用户阅读博客是应该要可以下载文件。于是我去学习SpringBoot的上传和下载文件,我感觉技术的难点在于使用图床并隐藏文件真实的存放地址。

技术详述

针对使用自己的服务器作为图床,

首先配置WEBmvcConfigurer,springBoot2.0以后的版本可以使用WebMvcConfigurer实现类方式来进行配置
即创建一个实体类实现WebMvcConfigurer接口


public class WebConfiguration implements WebMvcConfigurer {

}

override它的方法,用来做自定义资源映射


addResourceHandlers(ResourceHandlerReGIStry registry)

在springboot中,我们可以通过重写addResourceHandlers方法来映射静态资源目录;
具体做法:重写该类的addResourceHandlers方法;其中addResourceHandler指向映射路径,addResourceLocations指向资源文件路径;
资源文件路径地址必须以/结尾,指向文件目录上一层;


  public static final String FILE_ATTACHMENT_SAVE_ROOT = "/root";
    public static final String ORIGINAL_ATTACHMENT_ADDRESS = "/files/**";

 @Override
    public void addResourceHandlers(ResourceHandlerRegistry registry) {      
registry.addResourceHandler(ORIGINAL_ATTACHMENT_ADDRESS).addResourceLocations("file:" + FILE_ATTACHMENT_SAVE_ROOT);
    }

上传文件,将文件地址保存到数据库


public ResponseMessage releaseBlog( @RequestParam(value = "attachments", required = false) MultipartFile[] attachments) throws IOException {
        if (attachments != null) {
            for (MultipartFile attachment : attachments) {
                File file = new File((WebConfiguration.FILE_ATTACHMENT_SAVE_ROOT + UUID.randomUUID() + attachment.getOriginalFilename()).replace("-", ""));
                try {
                    attachment.transferTo(file);
                } catch (IOException e) {
                    if (file.exists()) {
                        file.delete();
                    }
                    e.printStackTrace();
                    throw new BaseException(ExceptionInfo.UPLOAD_ATTACHMENT);
                }
            }
        }
}

下载文件:先对数据库进行查询,返回给前端映射后的地址,前端界面将映射后的地址显示给用户,用户通过映射后的地址可以下载到文件。

问题及解决过程

  • 在进行接口测试时,我直接将本地文件的地址上传当做前端传给后端的参数,发现会失败,因此导致无法理解前端传来的地址是什么(虽然不会影响后端编程,但我觉得可以加深理解),后来去查看了相关文档函数,发现前端上传文件时会先将文件的地址设为一个临时地址,然后将这个临时地址传到后端。
  • 要注意其中在进行自定义资源映射时,addResourceHandler指向映射路径,addResourceLocations指向资源文件路径,资源文件路径地址必须以/结尾,指向文件目录上一层。我在写代码时不理解,导致上传文件那部分,存入数据库的地址一开始出错。

总结

文件上传的功能很常见,但是很多人并不清楚文件上传后的具体原理。可以使用自己的服务器用来保存实际文件,这种具体实现要配置一个虚拟路径来映射文件的真实绝对路径。这种做法更安全,同时使外网可以直接访问。

参考博客作者:pqq的迷弟原文链接:https://blog.csdn.net/qq_36317804/article/details/105116274

到此这篇关于SpringBoot上传和下载文件的文章就介绍到这了,更多相关SpringBoot上传下载文件内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!

--结束END--

本文标题: SpringBoot上传和下载文件的原理解析

本文链接: https://www.lsjlt.com/news/129787.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • SpringBoot上传和下载文件的原理解析
    技术概述 我们的项目是实现一个论坛。在论坛上发布博客时应该要可以上传文件,用户阅读博客是应该要可以下载文件。于是我去学习了SpringBoot的上传和下载文件,我感觉技术的难点在于使...
    99+
    2024-04-02
  • SpringBoot中怎么上传和下载文件
    在SpringBoot中上传和下载文件可以通过以下步骤实现: 上传文件: @RestController public clas...
    99+
    2024-03-07
    SpringBoot
  • SpringBoot如何实现上传和下载文件
    这篇文章主要介绍SpringBoot如何实现上传和下载文件,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!技术概述我们的项目是实现一个论坛。在论坛上发布博客时应该要可以上传文件,用户阅读博客是应该要可以下载文件。于是我...
    99+
    2023-06-20
  • SpringBoot文件上传与下载功能实现详解
    目录前言1、引入Apache Commons FileUpload组件依赖2、设置上传文件大小限制3、创建选择文件视图页面4、创建控制器5、创建文件下载视图页面前言 文件上传与下载是...
    99+
    2022-11-13
    SpringBoot文件上传 SpringBoot文件下载
  • 不安全的文件下载和上传
    不安全的文件下载和上传(PIKACHU) 文件下载漏洞概述 很多网站都会提供文件下载功能,即用户可以通过点击下载链接,下载到链接所对应的文件。 但是,如果文件下载功能设计不当,则可能导致攻击者可以...
    99+
    2023-09-01
    安全 php web安全
  • Go实现文件上传和下载
    本文实例为大家分享了Go实现文件上传和下载的具体代码,供大家参考,具体内容如下 一.文件上传 文件上传:客户端把上传文件转换为二进制流后发送给服务器,服务器对二进制流进行解析 HTM...
    99+
    2024-04-02
  • vue实现文件上传和下载
    本文实例为大家分享了vue实现文件上传和下载的具体代码,供大家参考,具体内容如下 文件上传 vue中的文件上传主要分为两步:前台获取到文件和提交到后台 获取文件 前台获取文件,主要是...
    99+
    2024-04-02
  • springMVC实现文件上传和下载
    本文实例为大家分享了springMVC实现文件上传和下载的具体代码,供大家参考,具体内容如下 1准备工作 web.xml文件导入DispatcherServlet,Character...
    99+
    2024-04-02
  • ASP.NETCore实现文件上传和下载
    本文实例为大家分享了ASP.NET Core实现文件上传和下载的具体代码,供大家参考,具体内容如下 一、文件上传 1.1 获取文件后缀 /// <summary> ///...
    99+
    2024-04-02
  • java实现文件上传和下载
    本文实例为大家分享了java实现文件上传和下载的具体代码,供大家参考,具体内容如下 文件的上传 upload:文件上传 客户端通过表单的文件域file  把客户端的文件 上...
    99+
    2024-04-02
  • Postman中怎么处理文件上传和下载
    在Postman中处理文件上传和下载,可以通过以下步骤进行操作: 文件上传: 在Postman中创建一个新的请求。 在请求的H...
    99+
    2024-03-13
    Postman
  • Servlet文件的上传与下载详解
    目录文件的上传和下载1. 文件上传细节2. 文件上传3. 文件下载文件的上传和下载 1. 文件上传细节 要有一个 form 标签,method-post请求 (因为get有长度限制)...
    99+
    2024-04-02
  • 【SpringBoot+MyBatisPlus】文件上传与文件下载的应用与实现
    文章目录 前言一.文件上传二.改进三.文件下载四.上传图片/回显图片 前言 一次“上传文件”的点击蕴含着一轮请求,我们要做的就是针对每一次的请求进行i/o处理,并返回给前端用户 一.文...
    99+
    2023-09-08
    spring boot java mybatis
  • SpringBoot实现文件上传下载功能小结
    最近做的一个项目涉及到文件上传与下载。前端上传采用百度webUploader插件。有关该插件的使用方法还在研究中,日后整理再记录。本文主要介绍SpringBoot后台对文件上传与下载的处理。单文件上传// 单文件上传@RequestMapp...
    99+
    2023-05-31
    spring boot 文件上传
  • Spring MVC 实现文件的上传和下载
    文章目录 前言1. 文件上传1.1 文件上传介绍1.2 文件上传实现1.2.1 添加依赖1.2.2 配置上传解析器1.2.3 通过表单上传1.2.4 创建控制器类1.2.5 上传演示 ...
    99+
    2023-09-26
    spring mvc java java-ee
  • Spring MVC实现文件上传和下载
    本文实例为大家分享了Spring MVC实现文件上传和下载的具体代码,供大家参考,具体内容如下 文件上传 1、导入主要依赖 <!--文件上传--> <depe...
    99+
    2024-04-02
  • h5中怎么上传和下载文件
    这篇文章主要讲解了“h5中怎么上传和下载文件”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“h5中怎么上传和下载文件”吧!前言HTML5 中提供的文件API在...
    99+
    2024-04-02
  • Android OKhttp使用(下载和上传文件)
    Android okhttp的使用 首先在build.gradle中引入okhttp implementation 'com.squareup.okhttp3:okhttp:3.14.2' implementation 'co...
    99+
    2023-08-23
    okhttp android
  • Spring Boot实现文件上传和下载
    实现Spring Boot文件上传和下载的步骤: 1.文件上传 在pom.xml文件中添加依赖:spring-boot-starter-web和spring-boot-starter-thymelea...
    99+
    2023-09-06
    spring boot java servlet
  • Java实现文件上传和下载的方法详解
    目录1、文件上传1.1 介绍1.2 代码实现2、下载2.1 介绍2.2 代码实现1、文件上传 1.1 介绍 文件上传,也称为upload,是指将本地图片、视频、音频等文件上传到服务器...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作