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

这篇具有很好参考价值的文章主要介绍了上传文件提示java.io.IOException: java.io.FileNotFoundException:(系统找不到指定的路径。)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

前端上传失败效果:

java.io.ioexception: 系统找不到指定的路径。,java,java
java.io.ioexception: 系统找不到指定的路径。,java,java

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

java.io.ioexception: 系统找不到指定的路径。,java,java
java.io.ioexception: 系统找不到指定的路径。,java,java

关键信息:
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;
        }

java.io.ioexception: 系统找不到指定的路径。,java,java

原因分析:

运行在保存文件 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);

java.io.ioexception: 系统找不到指定的路径。,java,java

最终成功效果:

java.io.ioexception: 系统找不到指定的路径。,java,java
java.io.ioexception: 系统找不到指定的路径。,java,java
至此解决问题。文章来源地址https://www.toymoban.com/news/detail-657143.html

到了这里,关于上传文件提示java.io.IOException: java.io.FileNotFoundException:(系统找不到指定的路径。)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【文件合并下载报错java.io.IOException: Error: Header doesn‘t contain versioninfo】

    在开发完一个需求进行自测的时候,发现点下载按钮会报 的错误,看字面意思不清楚具体的问题,所以查资料后发现是文件的类型不一致导致了代码报错,当时写需求的时候没有考虑到PDF和DOC,pdfbox的MemoryUsageSetting.setupMainMemoryOnly方法会区分不同的文件类型,所以用结尾来区分

    2024年01月16日
    浏览(41)
  • java.io.IOException: Cannot run program “python“: CreateProcess error=2, 系统找不到指定的文件。

    java.io.IOException: Cannot run program “python”: CreateProcess error=2, 系统找不到指定的文件。 原因: python 这个命令 用java运行没有找到 解决:直接改用python.exe这个文件的绝对路径 错误源代码 修改后源代码

    2024年02月13日
    浏览(40)
  • 打成jar包运行之后报错,java.io.FileNotFoundException:(已解决)

    今天项目测试时,遇到一个问题,因为第一次遇到,所以记录一下: 1、问题情况如下:         存放在项目resources目录下的静态资源文件,需要在接口调用时,将其copy到其他文件位置,但是打包后运行,调用时报错FileNotFoundException。         开发中代码调试没有问题,但

    2024年02月15日
    浏览(57)
  • ElasticSearch启动报错RollingFileManager (/xxx/xxx) java.io.FileNotFoundException

    ElasticSearch启动报错如下: Could not create plugin of type class org.apache.logging.log4j.core.appender.RollingFileAppender for element RollingFile: java.lang.IllegalStateException: ManagerFactory  Unable to invoke factory method in class org.apache.logging.log4j.core.appender.RollingFileAppender for element RollingFile: java.lang.IllegalStateExcept

    2024年02月14日
    浏览(37)
  • 【方案探讨】 出现java.io.IOException解决方法

    欢迎来到我的博客!在这里,我将分享我对问题的独特见解和解决方案。通过这篇博客,我希望能够为您带来新的思考方式,启发您寻找问题的不同角度,并探索创新的解决方案。 每个问题都是一个机会,是一个学习的过程。在这里,我将分享我对问题的思考过程和解决方案

    2024年04月25日
    浏览(50)
  • java.io.IOException: Broken pipe管道断开

    一、Broken pipe产生原因分析 1.当访问某个服务突然服务器挂了,就会产生Broken pipe; 2.客户端读取超时关闭了连接,这时服务器往客户端再写数据就发生了broken pipe异常! 3.端口冲突,地址已被使用,也会导致Broken pipe 二、方案 1.问题一分析服务器为什么挂了。 2.问题二使用jp

    2024年02月10日
    浏览(50)
  • java.io.IOException: Connection reset by peer

    接口返回的时候报错,java.io.IOException: Connection reset by peer,具体报错信息如下: 原因: 接口返回的数据量太大报错, 解决办法: 修改nginx缓存配置信息。 nginx原配置信息: nginx修改后信息: 注意: \\\"proxy_busy_buffers_size\\\"必须等于或大于\\\"proxy_buffer_size\\\"的最大值。

    2024年02月16日
    浏览(50)
  • Caused by: java.io.FileNotFoundException: class path resource [datasourc.properties] cannot be opene

    异常: Caused by: java.io.FileNotFoundException: class path resource [文件名] cannot be opened because it does not exist 原因: 资源无法打开,因为它不存在 在Maven项目里面资源 默认生成的类路径是src/main/java ,如果你所需要的文件不在这个目录下,项目编译器输出里就不会有该文件(即便你的项目

    2024年02月07日
    浏览(43)
  • java.io.IOException: UT010029: Stream is closed异常

    后端提供一个excel文件模板下载接口 我们使用了ServletOutputStream来向客户端发送响应。在finally块中不需要关闭输出流,因为Servlet容器会在请求处理完成后自动关闭输出流。如果在finally块中尝试关闭已关闭的输出流,就会抛出java.io.IOException: Stream is closed异常。因此,我们可以

    2024年02月14日
    浏览(59)
  • 已解决org.springframework.amqp.AmqpIOException: java.io.IOException

    已解决org.springframework.amqp.AmqpIOException: java.io.IOException org.springframework.amqp.AmqpIOException: java.io.IOException AmqpIOException 是 Spring AMQP 框架中的一个异常类,它表示在与 RabbitMQ 交互时发生了 IO 异常。 下滑查看解决方法 通常,这个异常是由于与 RabbitMQ 的连接断开或无法建立连接导致

    2024年02月08日
    浏览(43)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包