SpringBoot2:web开发常用功能实现及原理解析-上传与下载

devtools/2024/9/20 1:20:18/ 标签: spring boot

文章目录

  • 一、上传文件
    • 1、前端上传文件给Java接口
    • 2、Java接口上传文件给Java接口
  • 二、下载文件
    • 1、前端从Java接口下载文件
    • 2、Java接口调用Java接口下载文件

一、上传文件

1、前端上传文件给Java接口

Controller接口
此接口支持上传单个文件和多个文件,并保存在本地


import lombok.extern.slf4j.Slf4j;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestPart;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.multipart.MultipartFile;import java.io.File;
import java.io.IOException;/*** 文件上传测试*/
@Slf4j
@RestController
public class FileTestController {/*** MultipartFile 自动封装上传过来的文件* @param headerImg* @param photos* @return*/@PostMapping("/upload")public String upload(@RequestPart("headerImg") MultipartFile headerImg,@RequestPart("photos") MultipartFile[] photos) throws IOException {log.info("上传的信息:headerImg={},photos={}",headerImg.getSize(),photos.length);if(!headerImg.isEmpty()){//保存到文件服务器,OSS服务器String originalFilename = headerImg.getOriginalFilename();headerImg.transferTo(new File("E:\\workspace\\boot-05-web-01\\headerImg\\"+originalFilename));}if(photos.length > 0){for (MultipartFile photo : photos) {if(!photo.isEmpty()){String originalFilename = photo.getOriginalFilename();photo.transferTo(new File("E:\\workspace\\boot-05-web-01\\photos\\"+originalFilename));}}}return "OK";}}

yaml配置

spring:servlet:multipart:max-file-size: 10MBmax-request-size: 100MB

Postman调用传参
在这里插入图片描述

2、Java接口上传文件给Java接口

二、下载文件

1、前端从Java接口下载文件

2、Java接口调用Java接口下载文件


http://www.ppmy.cn/devtools/111281.html

相关文章

每日一练8:dd爱框框(含链接)

1.链接 登录—专业IT笔试面试备考平台_牛客网 2.题目 3.代码 #include<iostream> #include<vector>using namespace std;const int N 1e7 5;int n,x;vector<int> v(N);int main() {cin >> n >> x;for(int i 0; i < n;i) cin >> v…

crontab命令:定时任务,周期执行

一、crontab 命令简介 ​crontab​ 是 Linux 系统中用于调度任务的工具&#xff0c;它允许用户按照预定的时间自动运行脚本或命令。通过 crontab​ 命令可以添加、修改、列出和删除用户的&#xff08;周期性&#xff09;定时任务。 ‍ 守护进程&#xff1a;corn ● cron.se…

嵌入式学习——数据结构——顺序表

线性表的定义 线性表是零个或多个数据元素的有限序列&#xff0c;元素之间具有顺序性&#xff0c;如果存在多个元素&#xff0c;第一个元素无前驱&#xff0c;最有一个没有后继&#xff0c;其他的元素只有一个前驱和一个后继。线性表元素的个数n&#xff08;n>0&#xff09…

C++:入门篇(补充C语言中的不足)

前言 这篇文章是C的第一篇文章&#xff0c;主要是补充C语言中存在的不足而扩展的一些新的语法&#xff0c;有了这篇文章作为杂序&#xff0c;后面再介绍其他内容就要清晰地多 C&#xff1a;入门篇 一、namespace 命名空间&#xff08;一&#xff09;域的概念&#xff08;二&…

计算机网络 --- 计算机网络的分类

一、计算机网络分类 1.1 按分布范围分类 举例&#xff1a;广域网&#xff08;WAN&#xff09;、局域网&#xff08;LAN&#xff09; 举例&#xff1a;个域网&#xff08;PAN&#xff09; 1.2 按传输技术分类 广播式网络――当一台计算机发送数据分组时&#xff0c;广播范围…

docker-compose 部署 flink

下载 flink 镜像 [rootlocalhost ~]# docker pull flink Using default tag: latest latest: Pulling from library/flink 762bedf4b1b7: Pull complete 95f9bd9906fa: Pull complete a880dee0d8e9: Pull complete 8c5deab9cbd6: Pull complete 56c142282fae: Pull comple…

404 error when doing workload anlysis using locust on OpenAI API (GPT.35)

题意&#xff1a;"使用 Locust 对 OpenAI API (GPT-3.5) 进行工作负载分析时出现 404 错误。" 问题背景&#xff1a; I am trying to do some workload analysis on OpenAI GPT-3.5-TURBO using locust. "我正在使用 Locust 对 OpenAI GPT-3.5-TURBO 进行一些…

Unity基本操作

API手册 Unity 脚本 APIhttps://docs.unity.cn/cn/2022.3/ScriptReference/index.html 在遇到不懂的方法、想更深入的学习或者是想查看是否有相应的方法实现某项功能&#xff0c;可以在Unity官方这里查看脚本。以Transform为例&#xff0c;可以直接搜索&#xff0c;或者在Unit…

狂奔的荣耀,稳健的苹果:AI Agent手机竞速赛

每一次技术革命&#xff0c;都需要一个技术落地的锚点&#xff0c;比如燃油革命时代的汽车&#xff0c;信息革命时代的PC与手机。而这一次以预训练大模型为主导的AI技术爆发中&#xff0c;被认为最有可能成为智能技术落地锚点的&#xff0c;就是AI Agent&#xff0c;或者称为智…

centos 服务器 多网卡 ip 地址 设置

centos 服务器 多网卡 ip 地址 设置 https://blog.csdn.net/xh_w20/article/details/141574357 cd /etc/sysconfig/network-scripts/ sudo systemctl status network ● network.service - LSB: Bring up/down networkingLoaded: loaded (/etc/rc.d/init.d/network; bad; v…

【LeetCode每日一题】——LCR 168.丑数

文章目录 一【题目类别】二【题目难度】三【题目编号】四【题目描述】五【题目注意】六【题目示例】七【题目提示】八【解题思路】九【时间频度】十【代码实现】十一【提交结果】 一【题目类别】 优先队列 二【题目难度】 中等 三【题目编号】 LCR 168.丑数 四【题目描述…

AI prompt(提示词)

# 好用的用于学习的AI提示词 ## 费曼学习法 请使用费曼学习法&#xff0c;用简单的语言解释&#xff08;量子力学&#xff09;是什么&#xff0c;并提供一个简单的例子来说明它如何应用 ## 帕累托法则&#xff08;80/20原则&#xff09; 将&#xff08;量子力学&#xff09;最…

喜报 | 知从科技荣获 “AutoSec 安全之星 - 优秀汽车软件供应链安全方案奖”

近日&#xff0c;「AutoSec 2024第八届中国汽车网络安全周暨第五届智能汽车数据安全展」在上海盛大举行。本届大会由谈思实验室和谈思汽车主办、上海市车联网协会联合主办&#xff0c;以汽车“网络数据安全、软件安全、功能安全”为主题&#xff0c;设置了“31X”模式&#xff…

Redis 集群高可用详解及配置

关型数据库 关系型数据库&#xff1a; 是建立在关系模型基础上的数据库&#xff0c;其借助于集合代数等数学概念和方法来处理数据库中的数据 主流的 MySQL、Oracle、MS SQL Server 和 DB2 都属于这类传统数据库 关型数据库的优缺点 特点&#xff1a; 1、数据关系模型基于关系…

数据管理生态的核心解析:数据库、数据仓库、数据湖、数据平台与数据中台的关系与实现

1. 数据管理的复杂生态 在大数据时代&#xff0c;企业不仅要处理日益增长的海量数据&#xff0c;还需要应对数据类型的多样化。数据可以是结构化的交易数据&#xff0c;也可以是非结构化的日志、社交媒体内容、图像和视频。面对这些挑战&#xff0c;企业必须构建一套能够高效存…

K均值聚类(K Means Cluster)—无监督学习方法、非概率模型、判别模型、线性模型、非参数化模型、批量学习

定义 输入: n n n个样本的集合 X X X; 输出:样本集合的聚类 C ⋅ C^{\cdot} C⋅。 (1)初始化。令 t 0 t0 t0,随机选择 k k k个样本点作为初始聚类中心 m ( 0 ) ( m 1 ( 0 ) , ⋯ , m l ( l ) , ⋯ , m k ( 0 ) ) m^{(0)} \big( m_1^{(0)},\cdots,m_l^{(l)},\cdots,m_k^{(0)…

【jvm】记一次hive堆heap内存溢出的排查

先看下java的内存模型 监控jvm工具&#xff1a;visualVM 摘录一下内容&#xff1a; 由c开发的jvm&#xff0c;它巧妙地设计了java的设计理念——即万物皆对象。并设计了这些对象应该如何存储&#xff0c;如何调用&#xff0c;并通过不断迭代设计让对象的存储和回收&#xff0…

[项目][WebServer][读取请求 解析请求]详细讲解

目录 1.ReadLine2.RecvRequest3.ParseRequest4.RecvRequestBody 1.ReadLine 读取的基本单位&#xff1a;按照行来进行读取不同平台&#xff0c;对行分隔符的处理可能不同&#xff0c;所以要有一个函数可以统一处理不同平台的情况&#xff0c;兼容各种行分隔符 \r\n\r\n 本函数…

sqli-labs靶场自动化利用工具——第11关

文章目录 概要整体架构流程技术细节执行效果小结 概要 Sqli-Labs靶场对于网安专业的学生或正在学习网安的朋友来说并不陌生&#xff0c;或者说已经很熟悉。那有没有朋友想过自己开发一个测试脚本能实现自动化化测试sqli-labs呢&#xff1f;可能有些人会说不是有sqlmap&#…

无人机动力系统设计基础知识

无人机动力系统设计基础知识 1. 源由2. 组成3. 部件规格3.1 电机规格书1. 电机型号&#xff08;Model Number&#xff09;2. 尺寸和重量&#xff08;Dimensions & Weight&#xff09;3. Kv 值&#xff08;Kv Rating&#xff09;4. 电压范围&#xff08;Operating Voltage R…