springboot异步文件上传获取输入流提示找不到文件java.io.FileNotFoundException

springboot上传文件,使用异步操作处理上传的文件数据,出现异常如下:
这个是在异步之后使用传过来的MultipartFile对象尝试调用getInputStream方法发生的异常。
java.io.FileNotFoundException: C:\Users\Administrator\AppData\Local\Temp\tomcat.8082.9218483334936865663\work\Tomcat\localhost\sdBusinessOnlineSchool\upload_43decfda_03e1_49fe_a31a_1be71b8b9a4e_00000000.tmp (系统找不到指定的文件。)
看文件的后缀是一个缓存文件,找不到缓存文件,太奇怪了。

开启bebug模式,在文件上传的时候,系统会字段在本地创建一个临时的缓存文件,在接受请求的方法内调用文件对象获取输入流,也是按照这个地址来创建输入流。
在controller层的时候:
在这里插入图片描述
进入异步方法即将执行获取输入流的时候:
在这里插入图片描述
个人想法:因为当前文件上传的业务逻辑是调用异步方法,然后直接就返回,估计接收请求的方法在返回之前,如果缓存文件没有正在被使用,框架就会将缓存文件删除。

验证:
在controller层获取输入流并且不关闭。
在这里插入图片描述

异步方法内查看:(为了防止是因为主线程执行比异步线程慢影响结果,异步方法获取之前先睡三秒。)
在这里插入图片描述
文件并没有被删除掉。验证成功。
所以想要在异步方法也能读取到上传的文件,可以在开启异步之前就打开一个输入流,然后通过传参的方式将输入流传到异步方法内。在异步方法内使用完毕再释放输入流。
提醒:记得要把输入流对象传到异步方法,并手动关闭输入流,否则会一直占用内存资源,并且服务器本地的缓存文件也无法更改或删除

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

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

相关文章

【C语言】指针的进阶

目录 一、字符指针 二、指针数组 三、数组指针 1.数组指针的定义 2.&数组名和数组名区别 3.数组指针的使用 四、数组参数与指针参数 1.一维数组传参 2.二维数组传参 3.一级指针传参 4.二级指针传参 五、函数指针 六、函数指针数组 七、指向函数指针数组的指针…

问题:【IntelliJ IDEA】解决idea自动声明变量加finall修饰符问题

问题:【IntelliJ IDEA】解决idea自动声明变量加finall修饰符问题 场景复现 1 new String() 2 快捷方式生成变量 final修饰的 final String s new String();步骤一:确保settings配置信息 settings-----》Editor------》Code Style--------》java下的这两个选项不…

模糊测试面面观 | 模糊测试工具知多少

自1988年威斯康星大学的Barton Miller首次提出模糊测试这一概念以来,模糊测试领域经历了持续长久发展。模糊测试作为一种软件测试方法,旨在通过向程序输入模糊、随机、异常的数据,探测和发现潜在的漏洞和错误。这种方法备受安全研究人员的青睐…

YOLOv5算法改进(2)— 添加SE注意力机制

前言:Hello大家好,我是小哥谈。注意力机制是近年来深度学习领域内的研究热点,可以帮助模型更好地关注重要的特征,从而提高模型的性能。注意力机制可被应用于模型的不同层级,以便更好地捕捉图像中的细节和特征&#xff…

Linux 网络发包流程

哈喽大家好,我是咸鱼 之前咸鱼在《Linux 网络收包流程》一文中介绍了 Linux 是如何实现网络接收数据包的 简单回顾一下: 数据到达网卡之后,网卡通过 DMA 将数据放到内存分配好的一块 ring buffer 中,然后触发硬中断CPU 收到硬中…

跟左神刷算法02 基础

题目1 先根据难度拍个序,难度一样的按收入大的排序,因为他每份都有招无数份人。难度相同的就留一个最大的。难度增加了,而薪水变小了,直接丢掉。难度和薪水保持一个单调性就可以了。 用有序表取做。 key是排序的。 迅速查到小于…

gcc语法解析如何解决dangling else的问题?

GCC上古版本(3.4)还有yacc,学习GCC如何实现if else 嵌套的问题。即: 问题 else后面的if到底是else if语义 if (xxx)a1 else if (xxx) a2还是 else (语法块中的if else)。 if (xxx)a1 else if (xxx) a 2 else a2;PostgreSQL的…

文心一言 VS 讯飞星火 VS chatgpt (76)-- 算法导论7.3 1题

一、如果用go语言,为什么我们分析随机化算法的期望运行时间,而不是其最坏运行时间呢? 文心一言: 在分析算法的性能时,期望运行时间是一个重要的指标,它描述了算法在平均情况下的表现。期望运行时间考虑了所有可能的…

C#如何打包EXE程序生成setup安装文件

项目结束之后,有需要将winForm程序打包成.exe文件提供给用户。 这里记录一下打包过程。 1:首先获取打包插件,如果你的VS已经安装,忽略此步骤。 点击 工具->扩展和更新,选择联机,搜索installer&#x…

微服务参数透传实现

说明:在微服务架构中,用户身份经网关验证后,我们可以将用户信息,如ID加入到请求头上。后面的微服务中,可以设置一个拦截器,拦截请求,获取请求头上的用户ID,加入到ThreadLocal中。 最…

【24择校指南】南京农业大学计算机考研考情分析

南京农业大学 考研难度(☆☆) 内容:23考情概况(拟录取和复试分析)、院校概况、专业目录、参考书目、23复试详情、各专业考情分析、各科目考情分析。 正文1315字,预计阅读:3分钟。 2023考情概…

Leetcode每日一题:1444. 切披萨的方案数(2023.8.17 C++)

目录 1444. 切披萨的方案数 题目描述: 实现代码与解析: 二维后缀和 动态规划 原理思路: 1444. 切披萨的方案数 题目描述: 给你一个 rows x cols 大小的矩形披萨和一个整数 k ,矩形包含两种字符: A …

C语言:初阶测试错题(查漏补缺)

题一:字符串倒置 示例1 输入 I like beijing. 输出 beijing. like I 思路一: 定义字符串数组arr[ ] ,利用gets()将要倒置的字符串输入,记录字符串长度len,此时写一个逆置函数Inversion(),第一步将整个字符串逆置&…

原生微信小程序自定义picker多列选择器:picker写法用法

前言: 最近用原生微信小程序写法写医疗相关项目微信小程序,在编辑个人资料的时候,需要很多选择器,比如城市地区选择器,职业职称选择器,科室选择器,学校选择器,学历选择器,年份日期选…

RabbitMq交换机类型介绍

RabbitMq交换机类型介绍 在RabbitMq中,生产者的消息都是通过交换器来接收,然后再从交换器分发到不同的队列,再由消费者从队列获取消息。这种模式也被成为“发布/订阅”。 分发的过程中交换器类型会影响分发的逻辑。 直连交换机&#xff1a…

Vue-5.编译器Idea

Vue专栏(帮助你搭建一个优秀的Vue架子) Vue-1.零基础学习Vue Vue-2.Nodejs的介绍和安装 Vue-3.Vue简介 Vue-4.编译器VsCode Vue-5.编译器Idea Vue-6.编译器webstorm Vue-7.命令创建Vue项目 Vue-8.Vue项目配置详解 Vue-9.集成(.editorconfig、…

公网远程连接Redis数据库「内网穿透」

文章目录 1. Linux(centos8)安装redis数据库2. 配置redis数据库3. 内网穿透3.1 安装cpolar内网穿透3.2 创建隧道映射本地端口 4. 配置固定TCP端口地址4.1 保留一个固定tcp地址4.2 配置固定TCP地址4.3 使用固定的tcp地址连接 前言 洁洁的个人主页 我就问你有没有发挥&#xff0…

wsl没有响应,wsl启动失败,docker启动失败

wsl的相关问题记录和解决 问题一:cmd命令窗口输入wsl后没有响应,会卡住,类似如图 排查: 输入 wsl -l -v看是否有东西输出;我的电脑没有东西输出,依旧是卡住;有内容请重启试试从开始菜单打开,点…

CSS 背景属性

前言 背景属性 属性说明background-color背景颜色background-image背景图background-repeat背景图平铺方式background-position背景图位置background-size背景图缩放background-attachment背景图固定background背景复合属性 背景颜色 可以使用background-color属性来设置背景…

(五)、深度学习框架源码编译

1、源码构建与预构建: 源码构建: 源码构建是通过获取软件的源代码,然后在本地编译生成可执行程序或库文件的过程。这种方法允许根据特定需求进行配置和优化,但可能需要较长的时间和较大的资源来编译源代码。 预构建: 预…