springboot中文件上传到本地

news2024/9/20 22:47:02

文件上传的业务是我们经常遇到的,那么在spring中该怎么处理这个业务呢?

文件上传三个基础

  • <input type="file" name="image">
  • enctype="multipart/form-data" 这里必须是这个类型,否则上传不了,默认的是application/x-www-form-urlencoded只能上传文本格式的文件。不能用于发送文件
  • action="/api/upload" method="post"
<!DOCTYPE html>
<head>
    <meta charset="UTF-8">
    <title>Hello World</title>
</head>
<body>
   <form action="/api/upload" method="post" enctype="multipart/form-data">
       <input type="text" name="name">
       <input type="text" name="age">
       <input type="file" name="image">
       <input type="submit" value="Submit">
   </form>
</body>
</html>

在这里插入图片描述

接口处理

package com.itheima.controller;


import com.itheima.pojo.Result;
import lombok.extern.slf4j.Slf4j;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.multipart.MultipartFile;

import java.io.File;
import java.io.IOException;

@Slf4j
@RestController
@RequestMapping("/upload")
public class UploadController {


    @PostMapping
    public Result upload(String name, Integer age, MultipartFile image) throws Exception {
        log.info("文件上传成功 {},{},{}",name,age,image);
        String originalFilename = image.getOriginalFilename();
        image.transferTo(new File("D:\\360Downloads\\"+originalFilename));
        return Result.success();
    }

}

这样,我们就能在D:\360Downloads中看到上传的文件了

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

文件名优化

在这里插入图片描述
如果我们直接使用上传的文件名,会导致同名的被覆盖,造成文件的丢失

@PostMapping
    public Result upload(String name, Integer age, MultipartFile image) throws Exception {
        log.info("文件上传成功 {},{},{}",name,age,image);

        String originalFilename = image.getOriginalFilename();
        int index = originalFilename.lastIndexOf(".");
        String extname = originalFilename.substring(index);
        String filename = UUID.randomUUID().toString() + extname;
        image.transferTo(new File("D:\\360Downloads\\"+filename));
        return Result.success();
}
# 配置单个文件上传大小限制
spring.servlet.multipart.max-file-size=10MB

# 配置单个请求最大大小的限制,一次请求中是可以上传多个文件
spring.servlet.multipart.max-request-size=100MB

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

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

相关文章

基于springboot+vue大学生资助管理系统

​基于springbootvue大学生资助管理系统设计与实现(源码L文ppt)4-055 4 系统设计 4.1 功能模块设计 大学生资助管理系统根据权限类型进行分类&#xff0c;主要可分为学生和管理员二大模块。学生模块主要实现了修改个人信息&#xff0c;查看资助政策、用户反馈、在线客服…

计量经济学——事件研究法/事件分析法

计量经济学——事件研究法/事件分析法 基本定义 事件分析法 (Event Study Methodology, ESM) 是一种用于研究重大事件对公司层面变量短期影响的计量方法。在以往研究中&#xff0c;该方法主要应用于金融领域&#xff0c;且主要用来衡量某一特定事件对公司股票价格的影响。但是…

mfc140u.dll丢失的解决方法都有哪些?有效的将丢失的mfc140u.dll恢复

在使用基于Windows系统的电脑运行某些应用程序时&#xff0c;可能会遇到一个提示错误&#xff1a;“mfc140u.dll文件丢失”。这通常意味着你的系统缺少某个必要的动态链接库&#xff08;DLL&#xff09;文件&#xff0c;这可能会阻止程序正常运行。本文将向你介绍一系列有效的解…

Attention Is All You Need论文解读

基本信息 作者Ashish Vaswanidoi发表时间2017期刊NIPS网址https://doi.org/10.48550/ 研究背景 1. What’s known 既往研究已证实 使用RNN&#xff08;循环神经网络&#xff09;来处理机器翻译任务。RNN本轮的输入状态取决于上一轮的输出状态&#xff0c;这使RNN的计算必须串…

JAVA一键预约无人化台球茶室棋牌室系统

一键预约&#xff0c;即刻享受无人化台球茶室棋牌室系统 ✨【未来已至&#xff0c;娱乐新体验】✨ 你是否厌倦了传统台球室、茶室、棋牌室的繁琐等待和人工服务&#xff1f;今天&#xff0c;就让我带你一起揭秘一个颠覆传统、引领潮流的新宠儿——“一键预约&#xff0c;即刻…

PLC边缘计算网关的选择策略-天拓四方

随着工业自动化和物联网技术的快速发展&#xff0c;PLC作为工业自动化的核心设备&#xff0c;其数据采集与处理能力日益受到重视。PLC边缘计算网关作为连接PLC与云端服务的桥梁&#xff0c;不仅承担着数据收集、传输和初步处理的角色&#xff0c;更是实现工业智能化升级的关键。…

【小工具】Maven项目集成poi生成数据库设计详细说明书

背景 编写数据库详细设计文档时经常因为数据库表过多和字段过多导致耗费大量的时间。本脚本可以自定义sql语句&#xff0c;查出数据库中所有表的表结构&#xff0c;并取需要的字段生成文档。 gitee地址&#xff1a;https://gitee.com/pengmqqq/mysql-to-word 1、前置准备 导…

uniapp微信小程序3D XR-FRAME

1.在pages.json中配置展示页面&#xff08;style中添加下面&#xff1a;&#xff09; "usingComponents": { "xr-start": "../../wxcomponents/xr-start" } 2.manifest.json中配置mp-weixin "setting" : { "urlCheck" : fal…

国人发文霸榜!命中率高达70%,这本2区SCI到底是“国人友好”还是“疯狂灌水”?

【SciencePub学术】本期&#xff0c;给大家介绍的是1本计算机类的SCI——《International Journal of Machine Learning and Cybernetics》。 优点VS缺点 • 期刊发文量逐年增多&#xff0c;命中率较高 • 国人主编坐镇&#xff0c;国人发文友好 • 混合OA&#xff0c;可选无版…

中国书法艺术

孙溟㠭浅析《大观帖》 《大观帖》是一套共十卷合集摹刻的法帖&#xff0c;大观三年《1109年》正月&#xff0c;宋徽宗所藏《淳化阁帖》刻板已经开裂损坏&#xff0c;不可修复&#xff0c;便拿出内府所藏原墨迹&#xff0c;命蔡京、龙大渊组织刻帖工作。由蔡京书写帖内的款…

【Redis】事务主从复制哨兵集群缓存分布式锁

【Redis】事务&哨兵&集群 一、事务命令合集&#xff1a; 二、主从复制断开复制性质&#xff1a;拓扑结构&#xff1a;全量复制和部分复制&#xff1a;1. replicationid/replid (复制id)&#xff08;与runid做区分&#xff09;2. offset (偏移量) psync 运⾏流程全量复制…

骨质疏松患者常用评估量表汇总,附操作步骤与评定标准

临床常用量表来评估患者的骨健康状况&#xff0c;常笑医学整理了4个临床常用的骨质疏松患者评估量表&#xff0c;支持下载和在线使用&#xff0c;供临床医护人员参考。 01 国际骨质疏松基金会(IOF)骨质疏松症风险一分钟测试题 &#xff08;完整量表请点击量表名称查看&#xff…

Transformer模型《Attention Is All You Need》

版权声明 本文原创作者:谷哥的小弟作者博客地址:http://blog.csdn.net/lfdfhl1. 模型起源与发展 1.1 2017年论文《Attention Is All You Need》 2017年,谷歌大脑团队在论文《Attention Is All You Need》中首次提出了Transformer模型,该模型摒弃了传统的循环神经网络(RN…

关于主流电商平台|淘宝|拼多多|抖音|1688官方平台接口的接入和返回

taobao.trades.sold.get( 查询卖家已卖出的交 搜索当前会话用户作为卖家已卖出的交易数据&#xff08;只能获取到三个月以内的交易信息&#xff09; 1. 返回的数据结果是以订单的创建时间倒序排列的。 2. 返回的数据结果只包含了订单的部分数据&#xff0c;可通过taobao.trade…

我愿称之为: jjVioMap (小提琴热图)

吾将上下而求索 1Introduction Here supply a geom_jjviomap function to visualize gene expression or other data in a heatmap-like way. The geom_jjviomap can still retain data distribution informations through violin graphs. 链接: https://github.com/junjunlab/…

论文解读汇总(目标检测、目标跟踪、语义分割....)定期更新

微信公众号 猫脸码客 论文解读文章 第1期 论文解读——YOLOv1&#xff08;目标检测&#xff09; 第2期 论文解读——YOLOv2&#xff08;目标检测&#xff09; 第3期 论文解读——YOLOv3&#xff08;目标检测&#xff09; 第4期 论文解读——YOLOv4&#xff08;目标检测&…

惊喜!万博智云亮相2024数博会和第三届828 B2B企业节

摘要 万博智云作为2024 828 B2B企业节铂金合作伙伴&#xff0c;在2024中国国际大数据产业博览会的828 B2B企业节开幕式上亮相&#xff0c;并参加了本次828企业节的一系列活动&#xff0c;包括在华为展台现场开展的“‘云上大咖团’直面数博会现场”的直播上发表了主题分享。 8…

最新发布!Windows 11 23H2 64位专业精简版

今天系统之家小编给大家带来2024年8月28日更新的Windows11 23H2精简版系统&#xff0c;该版本系统经过适度的精简优化&#xff0c;大部分功能都保留下来&#xff0c;可以轻松满足大家的日常使用需求。系统的兼容性强大&#xff0c;能完美兼容新老机型&#xff0c;安装后时刻运作…

图像压缩编码(2)有损压缩--变换编码

#灵感# 接上文&#xff0c;继续讲解第二种有损压缩&#xff0c;但是内容太多了&#xff0c;浅尝就行。 有损压缩编码以丢失一部分信息为代价&#xff0c;换来较高的压缩比。有损压缩主要分为几类&#xff1a;预测编码、变换编码、子带编码、模型编码。 变换编码 变换编码与预…

Java、python、php版 舞蹈工作室管理系统 舞蹈课程预约平台(源码、调试、LW、开题、PPT)

&#x1f495;&#x1f495;作者&#xff1a;计算机源码社 &#x1f495;&#x1f495;个人简介&#xff1a;本人 八年开发经验&#xff0c;擅长Java、Python、PHP、.NET、Node.js、Android、微信小程序、爬虫、大数据、机器学习等&#xff0c;大家有这一块的问题可以一起交流&…