springboot中多线程中使用MultipartFile进行异步操作报错,系统找不到指定的文件
时间:2020-01-14
本文章向大家介绍springboot中多线程中使用MultipartFile进行异步操作报错,系统找不到指定的文件,主要包括springboot中多线程中使用MultipartFile进行异步操作报错,系统找不到指定的文件使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
springboot中多线程中使用MultipartFile进行异步操作报错,系统找不到指定的文件
首先前端传递过来的文件,会存储到临时文件夹中,即类似这样的一个路径。
C:\Users\xxx\AppData\Local\Temp\tomcat.6131519677783180826.8056\work\Tomcat\localhost\ROOT
但是异步执行的时候,主线程结束,临时文件就会被清空了,所以会报错:
java.io.FileNotFoundException: C:\Users\hwq\AppData\Local\Temp\tomcat.6131519677783180826.8056\work\Tomcat\localhost\ROOT\upload_85d787c3_6037_4ea2_a7f9_54ac3a19b461_00000011.tmp (系统找不到指定的文件。)
需要转换为流来进行操作
- @RequestMapping("/add")
- public String addRecordDetail(@RequestParam("file") MultipartFile file, @ModelAttribute FormDetail formDetail) throws IOException {
- String fileName = buildFileName(file);
- InputStream inputStream = file.getInputStream();
- RecordDetailThreadMange detailThreadMange = new RecordDetailThreadMange(inputStream,formDetail,fileName);
- threadPoolService.addThreadPoolTask(detailThreadMange);
- logger.debug("============>run next process,当前线程名称:{}",Thread.currentThread().getName());
- return "true";
- }
原文地址:https://blog.csdn.net/javadream007/article/details/102566585
原文地址:https://www.cnblogs.com/jpfss/p/12193163.html
- Search for a range寻找上下界-Leetcode
- Basic Calculator 基本计算器-Leetcode
- python yield函数深入浅出理解
- 十分钟搞定 Tensorflow 服务
- datapump跨平台升级迁移的总结 (r8笔记第77天)
- Java中isAssignableFrom()方法与instanceof()方法用法
- 与Ajax同样重要的jQuery(1)
- Java中Class类详解、用法及泛化
- python 函数编程的位置参数、默认参数、关键字参数以及函数的递归
- Java子类的父类和要实现的接口有相同的方法/函数会冲突吗
- Java关键字 Finally执行与break, continue, return等关键字的关系
- #if 和#ifdef的区别
- python高阶函数:map(f,[list]),reduce(f,[list],可选初始值),
- 深入探讨 Java 类加载器
- java教程
- Java快速入门
- Java 开发环境配置
- Java基本语法
- Java 对象和类
- Java 基本数据类型
- Java 变量类型
- Java 修饰符
- Java 运算符
- Java 循环结构
- Java 分支结构
- Java Number类
- Java Character类
- Java String类
- Java StringBuffer和StringBuilder类
- Java 数组
- Java 日期时间
- Java 正则表达式
- Java 方法
- Java 流(Stream)、文件(File)和IO
- Java 异常处理
- Java 继承
- Java 重写(Override)与重载(Overload)
- Java 多态
- Java 抽象类
- Java 封装
- Java 接口
- Java 包(package)
- Java 数据结构
- Java 集合框架
- Java 泛型
- Java 序列化
- Java 网络编程
- Java 发送邮件
- Java 多线程编程
- Java Applet基础
- Java 文档注释
- 使用OpenCV对车道进行实时检测的实现示例代码
- php 读取文件夹下所有图片、文件的实例
- php微信公众号开发之欢迎老朋友
- Linux基于php-fpm模式的lamp搭建phpmyadmin的方法
- PHP使用glob方法遍历文件夹下所有文件的实例
- Python图像阈值化处理及算法比对实例解析
- 浅析Python 条件控制语句
- 浅谈Django前端后端值传递问题
- sklearn和keras的数据切分与交叉验证的实例详解
- django Model层常用验证器及自定义验证器详解
- PyQT5 实现快捷键复制表格数据的方法示例
- Python爬虫headers处理及网络超时问题解决方案
- python报错: 'list' object has no attribute 'shape'的解决
- Python应用实现双指数函数及拟合代码实例
- 浅谈django不使用restframework自定义接口与使用的区别