SpringBoot之文件上传

news2024/12/26 11:44:32

1、文件上传原理😘

表单的enctype 属性规定在发送到服务器之前应该如何对表单数据进行编码。
当表单的enctype="application/x-www-form-urlencoded"(默认)时,form表单中的数据格式为:key=value&key=value
当表单的enctype="multipart/form-data"时,其传输数据形式如下

 2、SpirngBoot实现文件上传功能💱

Spring Boot工程嵌入的tomcat限制了请求的文件大小,每个文件的配置最大为1Mb,单次请求的文件的总数不能大于10Mb。
要更改这个默认值需要在配置文件(如application.properties)中加入两个配置
spring.servlet.multipart.max-file-size=10MB
spring.servlet.multipart.max-request-size=10MB

3、SpirngBoot实现文件上传功能🔤

当表单的enctype="multipart/form-data"时,可以使用MultipartFile 获取上传的文件数据,再通过transferTo方法将其写入到磁盘中
@RestController
public class FileUploadController {

   @PostMapping("/upload")
   public String up(String nickname, MultipartFile photo, HttpServletRequest request) throws IOException {
       System.out.println(nickname);
       // 获取图片的原始名称
       System.out.println(photo.getOriginalFilename());
       // 取文件类型
       System.out.println(photo.getContentType());

       String path = request.getServletContext().getRealPath("/upload/");
       System.out.println(path);
       saveFile(photo,path);
       return "上传成功";
  }

//
   public void saveFile(MultipartFile photo,String path) throws IOException {
//       判断存储的目录是否存在,如果不存在则创建
       File dir = new File(path);
       if(!dir.exists()){
//         创建目录
           dir.mkdir();
      }

       File file = new File(path+photo.getOriginalFilename());
       photo.transferTo(file);
  }
}

4、测试🌾

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

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

相关文章

༺༽༾ཊ—Unity之-01-单例模式—ཏ༿༼༻

在游戏开发过程中,我们会创建各种各样的类,再用new生成实例,有些时候我们需要这个类在整个游戏中是唯一出现的,比如一些管理器比如声音管理器等,没必要创建很多实例,就算有很多模块需要各种声音功能&#x…

【C++】模板类vector的简单实现

文章目录 1. 迭代器2.构造和析构3. 容量4. 访问5.修改6.测试完整代码总结: 在C的STL库中,vector是一个非常常用的容器,它提供了动态数组的功能。今天我们将一起来实现一个简化版的vector模板类,以便更好地理解它的原理和实现过程。…

红日靶场2打点记录

因为之前成功用冰蝎免杀360,把权限反弹到了MSF上,然后MSF把权限反弹到CS上 所以这次咱们走捷径直接通过反序列化漏洞连接(就是关掉360)因为权限弹来弹去感觉好麻烦 提示 大家如果想要免杀360千万别学我,我是之前免杀3…

springboot116基于java的教学辅助平台

简介 【毕设源码推荐 javaweb 项目】基于springbootvue 的基于java的教学辅助平台 适用于计算机类毕业设计,课程设计参考与学习用途。仅供学习参考, 不得用于商业或者非法用途,否则,一切后果请用户自负。 看运行截图看 第五章 第四…

前后端分离项目中实现图形验证码

图形验证码在我们的日常生活中时经常用到的,一般用于用户的登录、注册等。 图形验证码在互联网应用中的作用是提高安全性、防止滥用和保护用户隐私。它是一种简单而有效的人机验证技术,帮助保护系统和用户免受自动化攻击的影响。 本次我们通过spring b…

【深度学习每日小知识】NLP 自然语言处理

自然语言处理 (NLP) 是人工智能 (AI) 的一个子领域,处理计算机和人类(自然)语言之间的交互。它涉及使用算法和统计模型使计算机能够理解、解释和生成人类语言。 NLP 是人工智能领域的重要工具,广泛应用于语言翻译、文本分类和聊天…

短信平台搭建注意什么|网页版短信系统开发源码

短信平台搭建注意什么|网页版短信系统开发源码 短信平台是企业进行市场营销、客户关系管理和即时通讯的重要工具。为了确保短信平台的稳定运行和高效利用,以下是在搭建短信平台时需要注意的几个重要方面。 1. 需求分析:在搭建短信平台之前,需…

Springboot+vue的校园疫情防控系统(有报告),Javaee项目,springboot vue前后端分离项目。

演示视频: Springbootvue的校园疫情防控系统(有报告),Javaee项目,springboot vue前后端分离项目。 项目介绍: 本文设计了一个基于Springbootvue的前后端分离的校园疫情防控系统,采用M&#xff…

实时语音克隆,准确复制音色:OpenVoice | 开源日报 No.150

myshell-ai/OpenVoice Stars: 9.6k License: NOASSERTION OpenVoice 是一个通过 MyShell 进行即时语音克隆的开源项目。 OpenVoice 可以准确地克隆参考音色,并生成多种语言和口音的语音。OpenVoice 允许对声音风格进行细粒度控制,如情感、口音以及节奏…

数据库入门:快速了解数据库

目录 序言 一、什么是数据库? 二、DBMS 数据库管理系统(DataBase Management System) 三、数据库与文件系统的区别 四、数据库的发展和规划 五、常见数据库 5.1 关系型数据库 5.2 非关系型数据库 六、DBMS支持的数据模型 6.1 层次模…

【代码实战】从0到1实现transformer

获取数据 import pathlibimport tensorflow as tf# download dataset provided by Anki: https://www.manythings.org/anki/ text_file tf.keras.utils.get_file(fname"fra-eng.zip",origin"http://storage.googleapis.com/download.tensorflow.org/data/fra-…

Ultimate Crafting System

终极制作系统是您制作游戏的完整解决方案。从流畅的物品和配方创建的基础知识到强大的放置和能量转移系统,它拥有一切。可用于3D和2D游戏。非常适合独立简单的游戏,但程序员可以扩展其终极力量! — 内容 — - 点击式第三人称演示场景 - 第一人称演示场景 - 库存系统 - 从易于…

PIG框架学习3——Redisson 实现业务接口幂等

零、前言 ​ 业务接口幂等问题是在开发中遇到的,如果对业务接口代码不进行幂等控制,并且在前端没有对请求进行限制的情况下,可能会出现多次对接口调用,导致错误异常的发生。就上述情况,对PIGX自带的业务接口幂等实现进…

sql数据库的相关概念与底层介绍

本文中的数据库指的是磁盘数据库。如果有sql语言(CRUD,增删改查)的使用经验会更容易理解本文的知识点。 数据库与redis的区别 数据库:数据存储长期在磁盘中,小部分频繁需要的数据会被临时提取在内存中。 Redis&…

数组oj 移除元素

思路用双指针更简单,直接用一个数组,开始src和dst都为0,一起往后走(先走dst),当dst遇到val就停下,src接着走,走到不是val的地方,然后把src赋值给dst,在一起,往后面走。结…

启发式教学是什么

学生们在上课时看似认真听讲,但是在下课后却一片茫然,不知道你讲了什么内容?这是因为你可能使用了传统的教学方法,而不是启发式教学。 启发式教学是指老师在教育教学中,采用引导、启示、激发等手段,调动学…

【操作系统】实验二 Proc文件系统

🕺作者: 主页 我的专栏C语言从0到1探秘C数据结构从0到1探秘Linux 😘欢迎关注:👍点赞🙌收藏✍️留言 🏇码字不易,你的👍点赞🙌收藏❤️关注对我真的很重要&…

以Python程序为例介绍算法复杂度的估算

文章目录 概念介绍时间复杂度估算空间复杂度估算 引自同一作者百家号文章:「Python语言进阶」算法复杂度是什么?如何估算? 概念介绍 算法,可以理解为解决问题的方法和思路,不是一定得有代码的才叫算法,它…

每日汇评:黄金的市场注意力转向央行和地缘政治

金价从2000美元附近的数周低点反弹; 到目前为止,黄金的进一步巩固当前价格是当前的主题; 地缘政治、宏观数据和央行是本周的主导市场情绪; 黄金价格设法恢复了平衡,扭转了本周开始时的负面走势,从关键争夺区…

AI数据模型支撑下,鼎捷「预测透镜」如何助力汽配厂商浙江华工提质增效?

关于【浙江华工】 浙江华工汽车零部件有限公司(以下简称“华工”)成立于1987年,位于“中国汽摩配之都”浙江省瑞安塘下镇鲍七工业区,是一家集汽车发动机用冷却水泵和机油泵研发、制造、销售于一体的民营股份制企业。 近些年来&…