上传文件提示java.io.IOException: java.io.FileNotFoundException:(系统找不到指定的路径。)

news2025/1/9 17:07:36

解决上传文件提示java.io.IOException: java.io.FileNotFoundException:系统找不到指定的路径。

    • 前端上传失败效果:
    • 后端对应的异常输出信息:
    • 此时后端对应的上传关键代码:
    • 原因分析:
    • 解决方案:transferTo 传入参数定义为绝对路径
    • 最终成功效果:

前端上传失败效果:

在这里插入图片描述
在这里插入图片描述

后端对应的异常输出信息:

在这里插入图片描述
在这里插入图片描述

关键信息:
java.io.IOException: java.io.FileNotFoundException: C:\Users\brendon\AppData\Local\Temp\tomcat.6510816303036534023.8099\work\Tomcat\localhost\ROOT\invoice\originalfile\2023-02-13\73432e18330dec9a05af2e74d068bfba83e0a88d.pdf (系统找不到指定的路径。)

Caused by: java.io.FileNotFoundException: C:\Users\brendon\AppData\Local\Temp\tomcat.6510816303036534023.8099\work\Tomcat\localhost\ROOT\invoice\originalfile\2023-02-13\73432e18330dec9a05af2e74d068bfba83e0a88d.pdf (系统找不到指定的路径。)
at java.io.FileOutputStream.open0(Native Method)
at java.io.FileOutputStream.open(FileOutputStream.java:270)
at java.io.FileOutputStream.(FileOutputStream.java:213)
at java.io.FileOutputStream.(FileOutputStream.java:162)
at org.apache.tomcat.util.http.fileupload.disk.DiskFileItem.write(DiskFileItem.java:406)
at org.apache.catalina.core.ApplicationPart.write(ApplicationPart.java:120)
… 92 more

此时后端对应的上传关键代码:

 //通过SHA1生成唯一文件名
        String filename = hex.replaceAll("-","") + "." + suffix;
        String fullPath = savePath +"/"+ filename;
        System.out.println(fullPath);
         try {
            //将文件保存指定目录
            file.transferTo(new File(fullPath));
        } catch (Exception e) {
            e.printStackTrace();
            resultView.setCode(ResultEnums.FAILURE.getCode());
            resultView.setMsg(ResultEnums.FAILURE.getMessage()+"保存文件异常");
            return resultView;
        }

在这里插入图片描述

原因分析:

运行在保存文件 file.transferTo(new File(fullPath))处报错:

String fullPath = savePath +"/"+ filename;是相对路径,指向invoice\originalfile\2023-02-13\73432e18330dec9a05af2e74d068bfba83e0a88d.pdf

file.transferTo 方法调用时,判断如果是相对路径,则使用temp目录,即C:\Users\brendon\AppData\Local\Temp\tomcat.6510816303036534023.8099\work\Tomcat\localhost\ROOT
位置不对,没有此目录存在,所以报错。

解决方案:transferTo 传入参数定义为绝对路径

关键代码:

File currFile = new File(new File(savePath).getAbsolutePath()+"/" + filename);

file.transferTo(currFile);

在这里插入图片描述

最终成功效果:

在这里插入图片描述
在这里插入图片描述
至此解决问题。

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

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

相关文章

并发设计模式

1、Immutability模式:如何利用不变性解决并发问题?“多个线程同时读写同一共享变量存在并发问题”,这里的必要条件之一是读写,如果只有读,而没有写,是没有并发问题的。解决并发问题,其实最简单的…

【Docker】用开源umami监控你的站点访问量

新年到,祝大家兔年吉祥!🎉 1.介绍 umami是一个开源的站点访问量监看程序,其支持docker部署到自己的服务器上。相比较百度等收费的网站信息监看,这种方式对于小站长来说更加实惠一些 2.docker安装的坑 2.1 docker-co…

附录2-tensorflow目标检测

源码来自作者Bubbliiiing,我对参考链接的代码略有修改,网盘地址 链接:百度网盘 请输入提取码 提取码:dvb1 目录 1 参考链接 2 环境 3 数据集准备 3.1 VOCdevkit/VOC2007 3.2 model_data/voc_classes.txt 3.3 voc_an…

Github每日精选(第100期): 从超过 50 亿的自然语言中获得洞察力ossinsight

介绍 OSS Insight 是一个强大的工具,通过分析超过 5 亿行的 GitHub 事件数据,提供对开源世界的全面、有价值和趋势洞察。 OSS Insight 的Data Explorer提供了一种探索 GitHub 数据的新方法。只需用自然语言提出您的问题,Data Explorer 就会…

PMP应该如何备考?

备考之初的我们,总会四处搜索PMP备考经验,希望能拿到那些高分通关前辈的备考经验和方法。众所周知PMP考试因为有35个学时培训的基本要求,所以肯定是要通过培训机构报名的。 一,首先我们需要了解到新的考纲 1.PMP模块划分发生变化…

开关电源环路稳定性分析(11)——观察法找零极点

大家好,这里是大话硬件。 这篇文章主要是分享如何用观察法直接写出补偿网络中的零极点的表达式。 在前面的文章中,我们分别整理了OTA和OPA型的补偿网络,当时有下面的结论。 针对某个固定的补偿网络,我们可以用数学的方法推导补偿…

2W薪资必备技能 —— Python接口自动化测试

目录 一、基础准备 1. 环境搭建 2. 接口基础知识 2.1 接口分类 2.2 接口请求类型 二、Requests 快速上手 1. requests基础 1.1 发送请求 1.2 参数传递 1.3 接口响应 1.4 接口其他处理 2. requests 高级应用 2.1 会话对象 2.2 请求与响应对象 2.3 准备的请求 2.…

设置软件以管理员权限开机自启动,MemReduct为例

目录 一.MemReduct 1.简介 2.下载方式 二.问题描述 三.具体操作 1.在windows搜索框搜索"任务计划程序" 并打开 2.在右方操作栏点击创建任务 3.常规选项 4.操作选项 5.触发器选项 6.条件选项 7.启动 一.MemReduct 1.简介 支持中文,是一个很方便的内存清理软…

pyTorch下载和cuda下载以及学习笔记

pytorch官方网站,cuda官方网站 CUDA下载:https://developer.nvidia.com/cuda-toolkit-archive CUDNN下载:https://developer.nvidia.com/rdp/cudnn-download pytorch下载:pytorch.org 任务管理器中只显示CUDA占用的专用内存&#…

postman实现接口测试详细教程

各位小伙伴大家好, 今天为大家带来postman实战接口测试详细教程 一、通过接口文档集合抓包分析接口 通过fiddler抓包获取到注册接口URL地址及相关参数数据,并通过接口文档分析接口参数内容及参数说明, 如有必要的依赖条件必须进行梳理, 如token等 Fiddler抓包注册接口请求与…

领英精灵和领英助理哪个好?为什么领英精灵是LinkedIn最好的配套工具?

领英精灵和领英助理哪个好?这是很多使用领英工具的人会问的问题,这2个工具我都有使用过,下面说说我使用后的感受和区别: 公司背景 首先从他们的公司背景看,领英精灵是汇聚了国内领英专家针对领英规则设计的&#xff…

32、基于51单片机红外智能垃圾桶系统设计

摘要 随着现代化进程的日益推进,科技越来越发达,人们的生活水平也提高了,城市化程度越来越高,与此同时也带了许多问题,生活垃圾越来越多垃圾设施却不够完善。无论是在公共场合还是家庭厨房的垃圾大都是没有盖或者有盖…

C语言——指针(进阶详解)

文章目录指针概念的回顾1.字符指针1.1字符指针练习题2.指针数组3.数组指针3.1数组指针的定义3.2 &数组名和数组名的区别3.3数组指针的使用3.4一组简单的练习题4.数组和指针作为函数参数4.1一维数组传参**总结**4.2二维数组传参**总结**4.3一级指针传参**总结**4.4二级指针传…

Spring Boot RCE到内存马探索

前言 SpringBootVulExploit是Spring Boot漏洞Check list,但在真正的环境中进行漏洞利用还是有一段距离的,因此衍生出了SpringBootExploit工具。本文是对该Check list到内存马探索之路的记录。再此过程中学到了很多知识,收获了很多&#xff0…

线性双功能PEG羧酸Acetic Acid-PEG-Acetic Acid,AA-PEG-AA,羧酸PEG羧酸

产品名称: 1、英文:Acetic Acid-PEG-Acetic Acid AA-PEG-AA 2、中文:羧酸-聚乙二醇-羧酸 产品介绍: AA-PEG-AA是一种线性双功能PEG羧酸试剂。PEG和COOH基团之间存在亚甲基(CH2)键。AA-PEG-AA也称为CM-P…

测试平台系列——编写oss管理页面

上一节我们编写好了oss相关的crud接口,那这一节我们就得为oss数据的管理编写一个新的页面了。 即将做的是一个极度精简的文件管理页面。 效果图 因为我每次都是写完一段代码,然后编写对应教程,所以效果图这种东西自然是不在话下: 图片可以…

更改SAP GUI登录界面信息

在SAP GUI的登录界面,左部输入登录信息如客户端、用户名、密码等,右部空余部分可维护一些登录信息文本,如登录的产品、客户端说明及注意事项等,此项操作详见SAP Notes 205487 – Own text on SAPGui logon screen 维护文档使用的…

从春节后央行的首批罚单,看金融反欺诈反洗钱的复杂性

目录 个人信息保护的问题 征信管理的问题 反洗钱与反欺诈的问题 金融欺诈愈加复杂多变 金融机构如何增强反欺诈反洗钱 春节后,央行公示首批罚单。其中,厦门银行被中国人民银行福州中心支行给予警告,并没收违法所得767.17元,处…

30个HTML+CSS前端开发案例(五)

30个HTMLCSS前端开发案例(21-25)本人说明全屏加载动画效果代码实现效果吃豆豆动画效果代码实现效果鼠标悬停3D翻转效果代码实现效果3D旋转木马效果代码实现效果flex弹性布局-酷狗音乐播放列表代码实现效果资源包本人说明 本专栏为记录博主的毕业设计而开…

论文阅读 | Restormer: Efficient Transformer for High-Resolution Image Restoration

前言:CVPR2022oral 用transformer应用到low-level任务 Restormer: Efficient Transformer for High-Resolution Image Restoration 引言 low-level task 如deblurring\denoising\dehazing等任务多是基于CNN做的,这样的局限性有二: 第一是卷…