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…

解决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;或者是遗…

nextjs渲染篇

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

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;玩家将探索瓦罗兰大陆上…

基于python的二手房数据分析建模及可视化研究,爬取链家二手房数据,可视化分析,房价预测模型

介绍 主要涉及通过爬取济南市链家二手房数据&#xff0c;然后对数据进行处理&#xff0c;包括缺省值处理&#xff0c;高德地图获取二手房地址所属市区&#xff0c;经纬度等数据处理。然后通过python的flask框架编写后端接口&#xff0c;把数据响应给前端。然后前端通过AJAX请求…

谈谈微前端

相关问题 为什么要用微前端微前端的优缺点 回答关键点 独立开发 独立运行 独立部署 自治 微前端是一种架构理念&#xff0c;它将较大的前端应用拆分为若干个可以独立交付的前端应用。这样的好处是每个应用大小及复杂度相对可控。在合理拆分应用的前提下&#xff0c;微前端能…

【Java基础学习】面向对象编程

开始时间: April 10, 2024 结束时间: April 16, 2024 阶段: Done 基础部分 类与对象的关系 类是抽象的&#xff0c;概念的&#xff0c;代表一类事物对象是具体的&#xff0c;实际的&#xff0c;代表一个具体事物&#xff08;实例&#xff09;类是对象的模板&#xff0c;对象…

Python 数学应用(四)

原文&#xff1a;zh.annas-archive.org/md5/123a7612a4e578f6816d36f968cfec22 译者&#xff1a;飞龙 协议&#xff1a;CC BY-NC-SA 4.0 第十一章&#xff1a;其他主题 在本章中&#xff0c;我们将讨论一些在本书前几章中没有涉及的主题。这些主题大多涉及不同的计算方式以及优…

记录-海思开发板的 嵌入式nginx和 php的移植(交叉编译环境配置)

嵌入式 lnmp搭建的记录 N&#xff1a;NginxP&#xff1a;php编译PHP可能遇到的问题configure阶段&#xff1a;Makefile-make阶段&#xff1a;Makefile-make install阶段&#xff1a; 文章比较水&#xff0c;并没有没解决什么实际问题&#xff0c;有点不好意思发布。但好像又记录…

Python 数据结构和算法实用指南(三)

原文&#xff1a;zh.annas-archive.org/md5/66ae3d5970b9b38c5ad770b42fec806d 译者&#xff1a;飞龙 协议&#xff1a;CC BY-NC-SA 4.0 第七章&#xff1a;哈希和符号表 我们之前已经看过数组和列表&#xff0c;其中项目按顺序存储并通过索引号访问。索引号对计算机来说很有效…

安装 k8s集群的问题:默认容器运行时从 Docker 改为 Containerd

安装 k8s集群的问题&#xff1a;默认容器运行时从 Docker 改为 Containerd 1、背景2、容器运行时从 Docker 改为 Containerd2.1、安装 Containerd&#xff1a;2.2、生成 Containerd 的配置文件2.3 、创建 /etc/crictl.yaml 文件2.4 、配置 Containerd 服务开机自启 &#x1f49…

安全认证Kerberos详解

文章目录 一、Kerberos入门与使用1、Kerberos概述1.1 什么是Kerberos1.2 Kerberos术语1.3 Kerberos认证原理 2、Kerberos安装2.1 安装Kerberos相关服务2.2 修改配置文件2.3 其他配置与启动 3、Kerberos使用概述3.1 Kerberos数据库操作3.2 Kerberos认证操作 二、Hadoop Kerberos…