【SpringBoot】实现一个简单的图片上传

前端上传表单

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>Title</title>
</head>
<body>
<form enctype="multipart/form-data"  method="post" action="/upload">
文件:<input type="file" name="header_img"/><input type="submit" value="上传"  />
</form>
</body>
</html>

后端接口

  • private static  String filePath = "D:\\sprint\\spring\\src\\main\\resources\\static\\upload\\";
    
    @RequestMapping(value="/upload")public String upload(@RequestParam("header_img") MultipartFile file,HttpServletRequest request){System.out.println("文件名称"+file.getOriginalFilename());System.out.println("文件类型"+file.getContentType());System.out.println("文件大小"+file.getSize());//获取文件名称String fileName = file.getOriginalFilename();//获取文件后缀名称String suffixNmae = fileName.substring(fileName.lastIndexOf("."));//转换名称 方舟文件名称冲突fileName = UUID.randomUUID()+suffixNmae;System.out.println("转换后的文件名称"+fileName);File data = new File(filePath + fileName);try {file.transferTo(data);}catch ( IllegalStateException e){e.printStackTrace();} catch (IOException e) {throw new RuntimeException(e);}return "1";}

限制图片大小

  • 不做任何处理的情况下,我上传一个2M左右的图片
    在这里插入图片描述
  • 在@SpringBootApplication 下加入拦截
    @Beanpublic MultipartConfigElement multipartConfigElement() {MultipartConfigFactory factory = new MultipartConfigFactory();//单个文件最大factory.setMaxFileSize(DataSize.parse("10240KB")); //KB,MB/// 设置总上传数据总大小factory.setMaxRequestSize(DataSize.parse("1024000KB"));return factory.createMultipartConfig();}

在这里插入图片描述

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

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

相关文章

MCGS学习——弹框报警

弹框报警的制作流程 先绘制一个弹框窗口&#xff0c;在弹框窗口里绘制弹框标志&#xff0c;记得绘制完成之后点击合成单元&#xff0c;此外&#xff0c;打开报警信息按钮中是打开报警界面 绘制好之后&#xff0c;如果我们想让弹窗出现在我们想让他出现的位置&#xff0c;那我…

Likeshop回收租赁系统:回收租赁超方便!

尊敬的各位&#xff0c;很高兴有机会向大家介绍一款备受瞩目的系统——全新的Likeshop回收租赁系统。 无论是电子产品、衣服还是书本&#xff0c;越来越多人选择在二手平台上进行交易或租用&#xff0c;商品回收、租赁的需求越来越大&#xff0c;很多想入场的兄弟们都苦于没有…

(分享)一个图片添加水印的小demo的页面,可自定义样式

有时候想给某张图片添加一个自己的水印&#xff0c;但是又懒的下载相应软件&#xff0c;用js canvas制作一个静态页面&#xff0c;对于单张图片添加自定义文字水印&#xff0c;大小 间距&#xff0c;角度可调。 页面如下&#xff1a; 选择图片&#xff0c;设置相应参数&#x…

公众号超牛鼻的爆文仿写机器人,原创三篇只需6分钟,篇篇是爆文基因

大家好&#xff0c;我是大胡子&#xff0c;专注于RPA提效​&#xff0c;今天就介绍一款公众号超牛鼻的爆文仿写机器人​。 和以前的公众号爆文机器人不太一样&#xff0c;以前的爆文机器人需要手动插入图片、添加封面、插入话题&#xff0c;然后今天这个机器人就完全解决这几个…

代码随想录算法训练营第五十五天|583. 两个字符串的删除操作、72. 编辑距离

583. 两个字符串的删除操作 刷题https://leetcode.cn/problems/delete-operation-for-two-strings/description/文章讲解https://programmercarl.com/0583.%E4%B8%A4%E4%B8%AA%E5%AD%97%E7%AC%A6%E4%B8%B2%E7%9A%84%E5%88%A0%E9%99%A4%E6%93%8D%E4%BD%9C.html视频讲解https://…

Python装饰器教学

Python装饰器教学 一、装饰器简介 在Python中&#xff0c;装饰器是一种高级语法特性&#xff0c;允许你修改或增强函数、方法或类的行为&#xff0c;而无需修改其源代码。装饰器本质上是一个接受函数作为参数的函数&#xff0c;并返回一个新的函数对象。 二、装饰器的基本用…

详解:写作和赚钱的 4 个关系!看完你一定会忍不住想开始写!

飞书文档的加密很强&#xff0c;也没有和自家的豆包大模型融合&#xff0c;所以只能通过其他方式获取文档的内容。 &#xff08;1&#xff09;将飞书文档转换为PDF&#xff0c;要用到浏览器插件&#xff1a; GoFullPage - Full Page Screen Capture - Microsoft Edge Addons …

Golang 环境变量配置 mockgen安装(macOS系统)

1、将 $GOPATH/bin 添加到环境变量中 查看当前的 GOPATH 地址&#xff1a; go env GOPATH 将 GOPATH/bin 地址添加到系统环境变量里&#xff1a; 打开 zsh 终端文件 sudo vim ~/.zshrc 添加此路径到 zshrc 文件最后一行 export PATH$PATH:${GOPATH}/bin 2、安装 mockge…

[生活感悟]不生孩子有什么坏处?

不生孩子有什么坏处&#xff1f; 对于没有孩子的成年人来说&#xff0c;时间的变化是不同的。 I’ve noticed that I have a very different sense of time passing since I’m not attached to the school calendar. I tend to not notice it passing as much. And then abru…

RT-Thread动态内存扩展,使用多块不连续的RAM作为动态内存

开发环境 MCU&#xff1a;STM32F429VET6&#xff08;1M Flash&#xff0c;192K64K共256K SRAM&#xff09; 编译环境&#xff1a;MDK5.38 实时系统&#xff1a;RT-Thread标准版 目的 这颗MCU的SRAM默认是使用192K&#xff0c;即从地址0x20000000开始&#xff0c;最大0x30000…

VS code配置Markdown以及预览

1.安装 Visual Studio Code&#xff1a; 如果尚未安装Visual Studio Code&#xff0c;请先下载并安装它。您可以从官方网站&#xff08;https://code.visualstudio.com/&#xff09;下载适用于您的操作系统的版本。 2安装扩展 Visual Studio Code的强大之处在于其扩展生态系…

python生成requirement.txt

pipreqs第三方库&#xff08;推荐&#xff09; 使用 pipreqs 可以自动检索到当前项目下的所有组件及其版本&#xff0c;并生成 requirements.txt 文件&#xff0c;极大方便了项目迁移和部署的包管理。相比直接用pip freeze 命令&#xff0c;能直接隔离其它项目的包生成。 使用…

第九届蓝桥杯大赛个人赛省赛(软件类)真题C 语言 A 组-分数

solution1 直观上的分数处理 #include <iostream> using namespace std; int main() {printf("1048575/524288");return 0; }#include<stdio.h> #include<math.h> typedef long long ll; struct fraction{ll up, down; }; ll gcd(ll a, ll b){if…

2024中国闪存市场观察:AI助推闪存全面起势?

过去两年&#xff0c;闪存市场一直处于低迷状态&#xff0c;但去年第四季度闪存颗粒资源的上涨&#xff0c;导致闪存产品价格一路上扬&#xff0c;市场遂发生反转。 2024年&#xff0c;中国闪存市场会彻底走向复苏&#xff0c;还是急转直下&#xff1f;中国AI热潮&#xff0c;…

MATLAB 自定义生成平面点云(可指定方向,添加噪声)(48)

MATLAB 自定义生成平面点云(可指定方向,添加噪声)(48) 一、算法介绍二、算法步骤三、算法实现1.代码2.效果一、算法介绍 通过这里的平面生成方法,可以生成模拟平面的点云数据,并可以人为设置平面方向,平面大小,并添加噪声来探索不同类型的平面数据。这种方法可以用于…

【大全】常用加解密算性能、安全对比

常用算法 1、古典加密算法 古典密码&#xff08;classical cryptography&#xff09;编码方式归根结底主要就是置换和代换. 置换&#xff1a;已知明文字母集S{a,b}&#xff0c;置换后的密码可以是S’{b,a}&#xff0c;即将明文字符位置发生变化后形成的密码就是置换密码. 代换&…

JavaScript高架高级(四)---这可能是你看过的最完整的this指向

前言 简单阐述 前端的初学者在学习Javascript中this指向的时候经常都会一头雾水&#xff0c;尤其是在ES6箭头函数出现之前。 this指向之所以容易让人头疼&#xff0c;原因在于 this 是在代码执行时根据环境和情况不同才决定绑定为什么值。 所以本篇文章主要是介绍和总结了各…

Openstack(T) 部署Ceilometer服务 ---mongo命令error

执行如下命令 # mongo --host controller --eval db db.getSiblingDB("ceilometer"); db.addUser({user: "ceilometer", pwd: "admin123", roles: [ "readWrite", "dbAdmin" ]}) 出现错误 1.安装mongo ①vi /etc/yum.r…

数据结构进阶篇 之 【二叉树】详细概念讲解(带你认识何为二叉树及其性质)

有朋自远方来&#xff0c;必先苦其心志&#xff0c;劳其筋骨&#xff0c;饿其体肤&#xff0c;空乏其身&#xff0c;鞭数十&#xff0c;驱之别院 一、二叉树 1、二叉树的概念 1.1 二叉树中组分构成名词概念 1.2 二叉树的结构概念 1.3 特殊的二叉树 2、二叉树的存储结构 …

全面:vue.config.js 的完整配置

vue.config.js是Vue项目的配置文件&#xff0c;用于配置项目的构建、打包和开发环境等。 在Vue CLI 3.0之后&#xff0c;项目的配置文件从原来的build和config目录下的多个配置文件&#xff0c;合并成了一个vue.config.js文件。这个文件可以放在项目的根目录下&#xff0c;用于…