Java---后端文件上传详解

袁门才俊志高远,
震古烁今意决然。
风采翩翩才情显,
雄姿英发立世间。

目录

一,简单案例演示

二,服务器本地存储

三,配置单个文件上传大小限制

一,简单案例演示

首先简单编写一个前端网页:

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>yz测试上传文件</title>
</head>
<body><form action="/upload" method="post" enctype="multipart/form-data">姓名:<input type="text" name="username"><br>年龄:<input type="text" name="age"><br>头像:<input type="file" name="image"><br><input type="submit" value="提交"></form>
</body>
</html>

在浏览器打开:

在之前的项目中创建UpLoadController,之前的项目可以看文章Java---SpringBoot详解一_java springbot-CSDN博客

Java---SpringBoot详解二-CSDN博客

@RestController
public class UpLoadController {@PostMapping("/upload")public Result upLoad(String name, Integer age, MultipartFile image) {System.out.println("name:"+name+",age:"+age+",file:"+image);return Result.success();}
}

二,服务器本地存储

上面只是进行了请求,下面我们将上传的文件保存到服务器本地

对UpLoadController进行改造:

@RestController
public class UpLoadController {@PostMapping("/upload")public Result upLoad(String name, Integer age, MultipartFile image) throws IOException {System.out.println("name:"+name+",age:"+age+",file:"+image);//获取文件名String fileName=image.getOriginalFilename();//将文件保存在本地image.transferTo(new File("D:\\javatest\\file\\"+fileName));return Result.success();}
}

利用postman进行测试:

然后在服务器查看文件:

 

三,配置单个文件上传大小限制

如果我们不配置文件的大小,默认大小就是1M,超过1M大小的文件就会报错。

所以我们需要在application.properties文件中配置大小。根据自己的实际业务配置:


server.port=8080#配置单个文件的大小
spring.servlet.multipart.max-file-size=10GB#配置单个请求最大大小的限制(一次请求中是可以上传多个文件)
spring.servlet.multipart.max-request-size=10GB

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

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

相关文章

vue3+openLayers点击标记事件

<template><!--地图--><div class"distributeMap" id"distributeMap"></div> </template> <script lang"ts" setup> import { onMounted, reactive } from "vue"; import { Feature, Map, View }…

C++中的依赖注入

目录 1.概述 2.构造函数注入 3.setter方法注入 4.接口注入 5.依赖注入框架 6.依赖注入容器 7.依赖注入框架的工作原理 8.依赖注入的优势 9.总结 1.概述 依赖注入是一种设计模式&#xff0c;它允许我们在不直接创建对象的情况下为对象提供其依赖项&#xff1b;它通过将…

模拟信号介绍

定义&#xff1a; 模拟信号是指用连续变化的物理量表示的信息&#xff0c;其信号的幅度、频率或相位随时间作连续变化&#xff0c;或在一段连续的时间间隔内&#xff0c;其代表信息的特征量可以在任意瞬间呈现为任意数值的信号。我们通常又把模拟信号称为连续信号&#xff0c;它…

Pytorch使用教学6-张量的分割与合并

在使用PyTorch时&#xff0c;对张量的分割与合并是不可避免的操作&#xff0c;本节就带大家深刻理解张量的分割与合并。 在开始之前&#xff0c;我们先对张量的维度进行深入理解&#xff1a; t2 torch.zeros((3, 4)) # tensor([[0., 0., 0., 0.], # [0., 0., 0., 0.…

java发送https请求支持tls1.3

说明&#xff1a;java 8_u201及以下版本不支持tls1.3协议发送。最直接的方法是升级到该版本之上。 另外&#xff1a;需要修改一下代码强行使用tls1.3协议。如果只修改代码&#xff0c;不升级java版本会报错找不到该协议。

【基于PSINS】UKF/SSUKF对比的MATLAB程序

UKF与SSUKF UKF是&#xff1a;无迹卡尔滤波 SSUKF是&#xff1a;简化超球面无迹卡尔曼滤波 UKF 相较于传统的KF算法&#xff0c;UKF能够更好地处理非线性系统&#xff0c;并且具有更高的估计精度。它适用于多种应用场景&#xff0c;如机器人定位导航、目标跟踪、信号处理等。…

【解决方案】华普微基于CMT2189D的低功耗广域网解决方案

一、方案概述 随着物联网的快速发展&#xff0c;对于无线通信的需求越来越高。传统的通信技术可能无法满足物联网设备的特殊要求&#xff0c;如低功耗、长距离覆盖和大规模连接。LPWAN技术应运而生&#xff0c;旨在为物联网设备提供低成本、低功耗的远距离通信解决方案。ZETA作…

【Qt】Qt容器和STL容器的区别

1、简述 Qt容器和STL容器略有不同,作为一个Qter,应该知道它们之间的异同。 Qt容器官网介绍:https://doc.qt.io/qt-5/containers.html STL容器官网介绍:https://zh.cppreference.com/w/cpp/container 2、Qt容器和STL容器的对应关系 注意:QList 与 std::list 无关,QSet …

<数据集>铁路工人安全帽安全背心识别数据集<目标检测>

数据集格式&#xff1a;VOCYOLO格式 图片数量&#xff1a;3065张 标注数量(xml文件个数)&#xff1a;3065 标注数量(txt文件个数)&#xff1a;3065 标注类别数&#xff1a;3 标注类别名称&#xff1a;[vest, helmet, worker] 序号类别名称图片数框数1vest305978832helmet…

谷粒商城实战笔记-59-商品服务-API-品牌管理-使用逆向工程的前后端代码

文章目录 一&#xff0c; 使用逆向工程生成的代码二&#xff0c;生成品牌管理菜单三&#xff0c;几个小问题 在本次的技术实践中&#xff0c;我们利用逆向工程的方法成功地为后台管理系统增加了品牌管理功能。这种开发方式不仅能快速地构建起功能模块&#xff0c;还能在一定程度…

Go语言常见序列化协议全面对比

先说结论 从易用性、性能、内存占用、编码后大小等几个方面综合考虑 ProtoBuf 胜出。 Gob 从性能和 I/O 带宽占用上都和 ProtoBuf 差不多&#xff0c;唯一劣势是编解码时内存占用较多。考虑到不用再写 IDL 带来的易用性&#xff0c;如果整个系统内不存在使用除 Go 以外其他语言…

使用 Snorkel 和 MinIO 的以数据为中心的 AI

如今&#xff0c;业界都在谈论大型语言模型及其编码器、解码器、多头注意力层和数十亿&#xff08;即将数万亿&#xff09;的参数&#xff0c;人们很容易相信好的人工智能只是模型设计的结果。不幸的是&#xff0c;事实并非如此。好的人工智能需要的不仅仅是一个精心设计的模型…

医疗器械ce认证办理流程介绍

CE认证是的产品安全认证&#xff0c;所有进入市场的医疗器械都必须进行医疗器械CE认证&#xff0c;医疗器械CE认证为了解决成员国之间的贸易壁垒&#xff0c;组织逐步将自己建成一个统一的大市场&#xff0c;以确保人员、服务、资本和产品(如医疗器械)的自由流通。在医疗器械领…

查找手机归属地轻松快捷,专业手机号码归属地数据源

在如今的信息社会中&#xff0c;手机已经成为了人们生活中不可或缺的一部分。当我们接到一个陌生的电话时&#xff0c;或者想了解一个电话号码的归属地时&#xff0c;我们可以借助一些工具来查找手机归属地。本文将介绍一种轻松快捷、专业的手机号码归属地数据源&#xff0c;并…

box-shadow属性的复合写法及高级用法,超详细!

前言&#xff1a;最近又叕看到了一个好看的特效&#xff0c;随后整理了一下&#xff0c;发现实现起来主要靠一个css属性就实现了&#xff0c;有一次刷新了我对css强大的认知&#x1f60e;&#xff0c;这个属性就是box-shadow&#xff0c;平常我们用到的比较少&#xff0c;但是针…

智慧工地视频汇聚管理平台:打造现代化工程管理的全新视界

一、方案背景 科技高速发展的今天&#xff0c;工地施工已发生翻天覆地的变化&#xff0c;传统工地管理模式很容易造成工地管理混乱、安全事故、数据延迟等问题&#xff0c;人力资源的不足也进一步加剧了监管不到位的局面&#xff0c;严重影响了施工进度质量和安全。 视频监控…

LLMs之Llama 3.1:Llama 3.1的简介、安装和使用方法、案例应用之详细攻略

LLMs之Llama 3.1&#xff1a;Llama 3.1的简介、安装和使用方法、案例应用之详细攻略 导读&#xff1a;2024年7月23日&#xff0c;Meta重磅推出Llama 3.1。本篇文章主要提到了Meta推出的Llama 3.1自然语言生成模型。 背景和痛点 >> 过去开源的大型语言模型在能力和性能上一…

C语言------指针讲解(3)

一、字符指针 在指针中&#xff0c;我们知道有一类指针类型为字符指针char*; int main() {char ch w;char* pc &ch;*pc w;return 0; } 还有一种使用方式如下&#xff1a; 上述代码中&#xff0c;本质是把hello的首字符的地址放到了pstr中。即把一个常量字符串的首字符…

netty使用redis发布订阅实现消息推送

netty使用redis发布订阅实现消息推送 场景 项目中需要给用户推送消息: 接口 RestController public class PushApi {Autowiredprivate PushService pushService;/*** 消息推送* param query* return*/PostMapping("/push/message")public String push(RequestBody…

国内访问Docker Hub慢问题解决方法

在国内访问Docker Hub时可能会遇到一些困难&#xff0c;但幸运的是&#xff0c;有多种解决方案可以帮助你顺利下载Docker镜像。以下是一些有效的解决方案&#xff1a; 配置Docker镜像源&#xff1a;你可以通过配置Docker的daemon.json文件来使用国内镜像源&#xff0c;比如DaoC…