SpringBoot将上传的文件保存到临时文件

介绍

当前端上传文件到后端,后端将文件上传到第三方,在后端不需要保存文件时可以考虑使用临时文件进行存储。好处是:不必再为文件找一个临时的存储位置。

使用场景

上传文件
上传文件
前端
后端
第三方

在上面的场景中,后端不需要存储前端上传的文件,这时可以考虑将文件保存到临时文件中。保存到临时的好处是,避免new File()时指定文件的存储路径,有时候确实也不知道存储到哪个路径。比如:在本地开发时知道本地的路径,但是不知道线上服务器的路径。上传玩记得将临时文件删除。

代码

@RequestMapping("/upload/tempFile")
@ResponseBody
public Map<String, Object> uploadTempFile(@RequestParam("file") MultipartFile file) {File tempFile = null;try {//生成文件名称String fileName = UUID.randomUUID().toString();//截取文件名称后缀String fileSuffix = file.getOriginalFilename().substring(file.getOriginalFilename().lastIndexOf("."));//创建临时文件//File.createTempFile("文件名称", "文件后缀");//File.createTempFile("temp", ".tmp");tempFile = File.createTempFile(fileName, fileSuffix);//将上传的文件保存到临时文件file.transferTo(tempFile);//调用第三方上传接口String reslut = HttpUtile.doGet(....);//result为空表示上传失败if (org.apache.commons.lang3.StringUtils.isBlank(reslut)) {return this.getJsonMap(false, "上传失败", ResultCode.ERROR.getCode(), null);}} catch (Exception e) {logger.error("uploadTempFile", e);return this.getJsonMap(false, "error", ResultCode.ERROR.getCode(), null);} finally {//删除临时文件tempFile.delete();}return this.getJsonMap(true, "上传成功", ResultCode.SUCCESS.getCode(), null);
}

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

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

相关文章

AJAX (异步的JavaScript 和 XML)

目录 1、什么是AJAX 2、作用 1&#xff09;与服务器通信 2&#xff09;异步交互&#xff08;更新局部页面&#xff09; 3、AJAX 的基本工作原理 4、应用举例 5、jQuery与AJAX 6、使用jQeury实现AJAX 1&#xff09;$.ajax()&#xff1a;发送异步请求 2&#xff09;$.g…

2024五一杯数学建模C题思路分析

文章目录 1 赛题思路2 比赛日期和时间3 组织机构4 建模常见问题类型4.1 分类问题4.2 优化问题4.3 预测问题4.4 评价问题 5 建模资料 1 赛题思路 (赛题出来以后第一时间在CSDN分享) https://blog.csdn.net/dc_sinor?typeblog 2 比赛日期和时间 报名截止时间&#xff1a;2024…

HCIA网络基础

HCIA网络基础是华为认证体系中一个至关重要的部分&#xff0c;它涵盖了计算机网络的基本概念、原理、技术和应用。以下是关于HCIA网络基础更详细的介绍&#xff1a; 一、网络基本概念和特点 网络是由若干计算机和其他设备通过通信线路或其他手段连接起来&#xff0c;进行数据…

JS和TS基础学习

javaScripte export和import javascript中import和export详解 JS之export JS中export怎么用&#xff1f; export导出分为两种导出 命名导出&#xff08;每个模块包含任意数量&#xff09; 默认导出&#xff08;每个模块包含一个&#xff09; var、let、const [JavaScript中…

解决npm install安装node-sass包容易失败的问题

具体问题如下&#xff1a; npm ERR! code ERESOLVE npm ERR! ERESOLVE unable to resolve dependency tree npm ERR! npm ERR! While resolving: XXX3.4.0 npm ERR! Found: webpack5.31.2 npm ERR! node_modules/webpack npm ERR! peer webpack”^4.0.0 || ^5.0.0″ from html-…

SpringBoot和Axios数据的传递和接收-Restful完全版

文章目录 一、基础知识铺垫Axios使用HTTP请求方式数据传输方式SpringBoot获取数据的方式 二、基础传递代码示例&#xff08;一&#xff09;Path Variables&#xff08;二&#xff09;Get、DeleteRequestParamModelAttribute &#xff08;三&#xff09;Post、Put、PatchRequest…

FreeRTOS学习 -- 中断配置

一、什么是中断 中断时微控制器一个很常见的特性&#xff0c;中断是由硬件产生&#xff0c;当中断产生以后CPU就会中断当前的流程而去处理中断服务&#xff0c;Cortex-M内核的MCU提供了一个用于中断管理的嵌套向量中断控制器&#xff08;NVIC&#xff09;。 二、中断优先级分…

土壤湿度传感器:助力农业现代化

随着科技的飞速发展&#xff0c;越来越多的先进技术被应用到农业生产中。其中&#xff0c;土壤湿度传感器作为现代农业的重要工具&#xff0c;正逐渐改变着传统农业的生产方式&#xff0c;成为农业现代化的秘密武器。 精确监测&#xff1a;土壤湿度传感器能够实时、精确地监测土…

WIN7用上最新版Chrome

1.下载WIN10最新版Chrome的离线安装包 谷歌浏览器 Chrome 最新版离线安装包下载地址 v123.0.6312.123 - 每日自动更新 | 异次元软件 文件名称&#xff1a;123.0.6312.123_chrome_installer.exe。 123.0.6312.123_chrome_installer.exe 文件右键解压缩得到 chrome.7z&#x…

树莓派3B长时间不操作屏幕息屏无信号处理

树莓派外接显示器&#xff0c;需长时间展示某个网页&#xff0c;经过一段时间&#xff0c;显示器屏幕会黑掉显示无信号。 需修改 /etc/lightdm/lightdm.conf 配置文件中新增如下两行并重启。 xserver-commandX -s 0 dpms sleep-inactive-timeout0

软考 - 系统架构设计师 - Web 应用真题(2)

问题 1&#xff1a; 淘汰策略&#xff1a;遗留系统技术含量低&#xff0c;业务价值也低&#xff0c;所以需要全面重新开发一个系统来替代遗留系&#xff1b;&#xff08;一般是企业的业务发生了根本变化&#xff0c;遗留系统已经基本不再适应企业运作的需要&#xff1b;或者是遗…

【Python基础】19.eval函数的使用

eval函数 eval()将字符串转变为有效的表达式来求值并返回对应的结果 基础数据计算 In [1]: eval("1 1") Out[1]: 2字符串重复 In [2]: eval (" * * 10") Out[2]: **********字符串转为列表 In [3]: type(eval("[1,2,3,4,5]")) Out[3]: lis…

docker 简单使用

docker 简单使用 一、 docker 安装二、docker 使用1. docker pull 拉取镜像2. docker run 后台运行3. docker ps 查看容器运行状态4. docker exec 进入容器5. exit 退出容器6. docker restar 重启容器7. docker stop 停止运行容器8. docker stop 启动容器9. docker stop 删除容…

nextjs渲染篇

1 服务器组件 默认情况下&#xff0c;Next.js 使用服务器组件。 1.1 服务器组件是如何呈现的&#xff1f; 在服务器上&#xff0c;Next.js 使用 React 的 API 来编排渲染。渲染工作被拆分为多个块&#xff1a;按单个路段和Suspense 每个区块分两个步骤呈现&#xff1a; Re…

Python一键修改目录下所有文件的编码格式

前言 在开发中总会遇到这样的问题&#xff0c;别人的代码采用的编码格式是GBK&#xff0c;而自己的项目的编码格式是UTF-8&#xff0c;如果直接复制过来&#xff0c;就会出现中文乱码的问题&#xff0c;一个个该编码格式又非常麻烦。所以我写了这样一小段简短的代码&#xff0…

Python 中的高阶函数

Python 中的高阶函数是指可以接受函数作为参数&#xff0c;或者返回函数作为结果的函数。这种特性让编程变得更加灵活和功能强大&#xff0c;常见的高阶函数有 map()、filter()、reduce() 和 sorted() 等。 map() 函数&#xff1a; map() 函数接受一个函数和一个可迭代对象&a…

select * from .... for update 使用 防止重复提交/操作

详情点下方链接 for-update笔记链接 注&#xff1a;当选中某一个行的时候,如果是通过主键id选中的。那么这个时候是行级锁。 其他的行还是可以直接insert 或者update的。如果是通过其他的方式选中行,或者选中的条件不明确包含主键。这个时候会锁表。其他的事务对该表的任意一行…

SQLite的PRAGMA 声明(二十三)

返回&#xff1a;SQLite—系列文章目录 上一篇&#xff1a;SQLite从出生到现在&#xff08;发布历史记录&#xff09;&#xff08;二十二&#xff09; 下一篇&#xff1a;用于 SQLite 的异步 I/O 模块&#xff08;二十四&#xff09; PRAGMA 语句是特定于 SQLite 的 SQL 扩…

Valorant 瓦罗兰特更新后进不去游戏?3个解决方法完美解决

Valorant 瓦罗兰特更新后进不去游戏&#xff1f;3个解决方法完美解决 《无畏契约&#xff08;VALORANT&#xff09;》是一款由知名游戏开发商&#xff08;Riot Games&#xff09;开发并且免费的多人射击游戏。游戏背景设定在一个幻想世界中&#xff0c;玩家将探索瓦罗兰大陆上…

面对深度合成技术备案,企业应该如何做好准备?

在这个数字化高速发展的时代&#xff0c;互联网信息服务已经深入我们生活的方方面面。特别是那些应用深度合成技术的互联网信息服务&#xff0c;比如通过算法实现的图像、语音和视频的合成等&#xff0c;现在都需要进行严格的备案。由于备案周期较长&#xff0c;建议涉及这些技…