linux 下部署springboot 配置上传文件路径 Caused by: java.io.IOException: Unexpected output data

5 篇文章 0 订阅
3 篇文章 0 订阅

问题描述

springboot linux 上传图片, 本地配置上传文件路径可以使用,但是Linux系统配置和本地环境不一样。

我按照网上说的配置这个,但是本地是例如:D://temp//

发现这两个配置是一样的

然后部署服务是上传文件时候报错如下:

解决:

后来经过半天调试测试发现,window文件目录和Linux目录是不一样的,例如:

window和 Linux 是这样的写的:

String os = System.getProperty("os.name");
File imagePath;
String imageTemp;
String datePath = dateFormat.format(new Date());
if (os.toLowerCase().startsWith("win")) {
    //windows系统
    String path = System.getProperty("user.dir");  //获取项目相对路径 
    imageTemp = path+"\\src\\main\\resources\\static\\images\\"+datePath;
}else{
    //linux系统
    //如果是linux环境下,目录为jar包同级目录
    File rootPath = new File(ResourceUtils.getURL("classpath:").getPath());
    if(!rootPath.exists()){
         rootPath = new File("");
    }
    imageTemp = rootPath.getAbsolutePath()+"/images/"+datePath;
}

这样就可以获取当前jar 文件的目录位置,可以对两个平台进行兼容。更多代码参考文档:springboot项目实现图片和文件上传,上传之后在前端页面进行展示以及下载(Linux+Windows) - QiuC - 博客园

我花费1天的时间终于找到问题的所在,之前问题一直在这里报错。

multipartFile.transferTo(imageResultPath);

后来经过测试发现是文件路径没有配置对,修改成正确的路径后发现上传成功。

imageResultPath 关键在于这个路径位置,Linux和window是不一样的。希望对你有帮助少花费时间去解决这个问题。

学习技术欢迎加入QQ群交流学习:216022706

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
ftpclient 是一个 Java 的 FTP 客户端类,用于在 Java 程序中连接和操作 FTP 服务器。然而,在执行某些操作时,可能会遇到 "ftpclient caused by: java.io.ioexception: connection is not open" 的异常。 这个异常的原因是因为在执行 FTP 操作之前,没有正确地打开 FTP 连接。在使用 FTPClient 进行 FTP 操作之前,我们需要先使用 connect() 方法连接到 FTP 服务器,并使用正确的主机名、用户名和密码。 连接到 FTP 服务器后,我们可以使用 login() 方法进行登录验证。如果没有成功登录,那么可能是用户名或密码错误,需要确保提供的用户名和密码是正确的。 另外,还需要注意在执行完所有的 FTP 操作后,使用 disconnect() 方法关闭连接,以释放资源和保持良好的编程习惯。 在处理这个异常时,可按照以下步骤进行排查: 1. 确保使用 connect() 方法正确连接到 FTP 服务器。 2. 确保使用 login() 方法成功登录到 FTP 服务器。 3. 检查是否在执行 FTP 操作之前使用了已关闭的连接。 4. 确保在所有操作完成后,使用 disconnect() 方法关闭连接。 总结:连接未打开的 "ftpclient caused by: java.io.ioexception: connection is not open" 异常通常是由于未正确连接到 FTP 服务器或未正确打开连接导致的。按照正确的连接和操作顺序,确保正确打开连接并在使用完之后关闭连接,可以避免这个异常的出现。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值