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

news2024/11/9 4:03:32

文章目录

  • 一、上传文件
    • 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: 10MB
      max-request-size: 100MB

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

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

二、下载文件

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

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2129730.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

基于小程序的教学辅助微信小程序设计+ssm(lw+演示+源码+运行)

教学辅助微信小程序 摘 要 随着移动应用技术的发展,越来越多的学生借助于移动手机、电脑完成生活中的事务,许多的传统行业也更加重视与互联网的结合,由于学生学习的压力越来越大,教学辅助是一个非常不错的教育平台,对…

人工智能(AI)领域各方向顶会和顶刊

在人工智能(AI)这个快速发展的领域,研究人员和从业者需要紧跟最新的研究动态和技术进展。顶级的会议和期刊是获取最新科研成果和交流思想的重要平台。以下是人工智能领域内不同方向的顶级会议和期刊概览。 顶级会议 人工智能基础与综合 A…

客厅无主灯设计:灯位布局与灯光灯具的和谐搭配

在现代家居设计中,客厅作为家庭活动的中心区域,其照明设计的重要性不言而喻。无主灯设计以其灵活多变、氛围营造独特的优势,逐渐成为客厅照明的热门选择。然而,如何合理规划灯位布局,并科学搭配灯光与灯具,…

20240913 每日AI必读资讯

AMD死战CUDA:我是一家软件公司 - AMD重大改变:重心将从硬件开发转向强调软件开发、API 和 AI 体验。 - 软件工程团队规模扩大了三倍,并且全力以赴投入软件开发 - AMD将自家已有5年历史的图形架构RDNA、计算架构CDNA重新整合在一起&#xf…

计算机毕业设计选题推荐-在线拍卖系统-Java/Python项目实战

✨作者主页:IT毕设梦工厂✨ 个人简介:曾从事计算机专业培训教学,擅长Java、Python、微信小程序、Golang、安卓Android等项目实战。接项目定制开发、代码讲解、答辩教学、文档编写、降重等。 ☑文末获取源码☑ 精彩专栏推荐⬇⬇⬇ Java项目 Py…

2024年9月13日 十二生肖 今日运势

小运播报:2024年9月13日,星期五,农历八月十一 (甲辰年癸酉月庚辰日),法定工作日。 红榜生肖:猴、鼠、鸡 需要注意:牛、兔、狗 喜神方位:西北方 财神方位:…

windows10通过coursier安装scala

第一步:安装Java 参考菜鸟教程安装Java: https://www.runoob.com/java/java-environment-setup.html#win-install 第二步:安装coursier 进入https://www.scala-lang.org/download/ 如下图所示: 第三步、确定jdk对应的scala版本…

小琳AI课堂:MASS模型——革新自然语言处理的预训练技术

大家好,这里是小琳AI课堂。今天我们来聊聊一个在自然语言处理(NLP)领域非常热门的话题——MASS模型,全称是Masked Sequence to Sequence Pre-training for Language Generation。这是华为诺亚方舟实验室在2019年提出的一种创新模型…

cpp-httplib的下载和使用

cpp-httplib的下载和使用 1.httplib 简介2. httplib 使用2.1 协议接口2.2 双端接口2.3 实际使用 3. 对Server中的Handler回调函数进行分析4. 最后 1.httplib 简介 cpp-httplib(也称为 httplib)是一个基于 C 的轻量级 HTTP 框架,它提供了简单…

统一建模语言UML之类图(Class Diagram)(表示|关系|举例)

文章目录 1.UML2.Class Diagram2.1 类图的表示2.2 类间的关系2.2.1 关联2.2.2 聚合2.2.3 组合2.2.4 泛化(继承)2.2.5 实现(接口实现)2.2.6 依赖 2.3 类图的作用 参考:Class Diagram | Unified Modeling Language (UML)…

2024/9/12 数学“回头看”之R(a)与R(a※)、分布函数、概率密度的特点

注意!这是充分必要条件。 分布函数性质 概率密度性质:

如何使用Jmeter关联influxDB?

一、添加"添加后端监听器" 二、后端监听器实现选择,"org. apache. jmeter. visualizers. backend. influxdb.InfluxdbBackendlistenerClient" 三、修改"influxdbUrl:自己的主机、application:取一个项目名" 四、influxDB&…

SAP B1 学习笔记 - 易混淆字段名(持续更新中)

背景 在 SAP B1 的单据中,由于同一单据时常对应着多个后台表单,且后台表单内包含的字段信息往往远大于单据显示出来的,在配置时经常出现多个字段混淆、无系统信息提示字段名模糊的情况,这里总结常见的易混淆难查找的后台字段名。…

【MySQL】MySQL表的增删改查(进阶篇)——之查询操作(超级详解)

前言: 🌟🌟本期讲解关于MySQL表增删查改进阶篇,希望能帮到屏幕前的你。 🌈上期博客在这里:http://t.csdnimg.cn/8SiWF 🌈感兴趣的小伙伴看一看小编主页:http://t.csdnimg.cn/8SiWF ​…

SpringBoot父子工程搭建

SpringBoot父子工程搭建 1、父工程 1.1、创建父工程 1.2、移除无用文件 1.3、修改pom.xml <?xml version"1.0" encoding"UTF-8"?> <project xmlns"http://maven.apache.org/POM/4.0.0" xmlns:xsi"http://www.w3.org/2001/XML…

循环节,CF 314B - Sereja and Periods

目录 一、题目 1、题目描述 2、输入输出 2.1输入 2.2输出 3、原题链接 二、解题报告 1、思路分析 2、复杂度 3、代码详解 一、题目 1、题目描述 2、输入输出 2.1输入 2.2输出 3、原题链接 314B - Sereja and Periods 二、解题报告 1、思路分析 如果 b 个 a 中出…

【Python报错已解决】AttributeError: ‘str‘ object has no attribute ‘read‘

&#x1f3ac; 鸽芷咕&#xff1a;个人主页 &#x1f525; 个人专栏: 《C干货基地》《粉丝福利》 ⛺️生活的理想&#xff0c;就是为了理想的生活! 文章目录 前言一、问题描述1.1 报错示例1.2 报错分析1.3 解决思路 二、解决方法2.1 方法一&#xff1a;直接使用字符串2.2 步骤…

DWI扩散磁共振成像和结构连接组学指南

扩散磁共振成像和结构连接组学指南 引言流程概述扩散磁共振成像(dMRI)dMRI基础ADC&#xff08; apparent diffusion coefficient, 表观扩散系数&#xff09;MD&#xff08;mean diffusivity, 平均扩散率&#xff09;FA&#xff08; fractional anisotropy, 分数各向异性&#x…

安装FTP服务器教程

一。安装vsftpd yum install vsftpd 二。修改配置文件&#xff0c;匿名账户具有访问&#xff0c;上传和创建目录的权限 vim /etc/vsftpd/vsftpd.conf &#xff08;红色进行设置放开YES&#xff09; local_enable&#xff1a;本地登陆控制&#xff0c;no表示禁止&#xff0c;ye…

llama网络结构及源码

模型初始化 首先模型初始化&#xff0c;确定模型属性 class LLaMA(nn.Module):def __init__(self, config: LLaMAConfig) -> None:super().__init__()assert config.padded_vocab_size is not Noneself.config configself.lm_head nn.Linear(config.n_embd, config.pad…