博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
java 使用 ftp下载文件失败的问题
阅读量:6008 次
发布时间:2019-06-20

本文共 2176 字,大约阅读时间需要 7 分钟。

  hot3.png

随着帝都雾霾的爆表,我的脑子也跟着混沌起来。。

前几天明明ftp下载文件的功能好好的,今天突然下载不了了。。。。

遂检查了下代码:

@Overridepublic boolean ftpGet(String ftpPath, String fileName, String pathDownload) {   FTPClient ftpClient = ftp.connectClient();   if(ftpClient == null) return false ;      boolean b = ftp.login(ftpClient, ftp.getUserName(), ftp.getPasswd());       if(!b) {          ftp.closeClient(ftpClient);          return false;       }              ftpClient.enterLocalPassiveMode();       String dirStr = null;       if(File.separator.equals("\\")){          dirStr = pathDownload.substring(0, pathDownload.lastIndexOf("\\"));       }else{          dirStr = pathDownload.substring(0, pathDownload.lastIndexOf("/"));       }       File file = new File(dirStr);       if(!file.exists()){          b = file.mkdirs();          LogUtil.paramAndResult("-ftp get mk dir-", pathDownload, "mk dir--"+b);       }       file = new File(pathDownload);       OutputStream out;   try {      out = new BufferedOutputStream(new FileOutputStream(file));   } catch (FileNotFoundException e) {      e.printStackTrace();      LogUtil.paramAndResult("-ftp get outputstream-", pathDownload, "pathDownload not exists");      ftp.closeClient(ftpClient);      return false;   }          boolean success = false;   try {      success = ftpClient.retrieveFile(ftpPath+"/"+fileName, out);   } catch (IOException e) {      e.printStackTrace();      LogUtil.error(e);      LogUtil.paramAndResult("-ftp get file exception-", ftpPath+"/"+fileName, "");   }       try {      out.close();   } catch (IOException e) {      e.printStackTrace();   }       ftp.closeClient(ftpClient);       LogUtil.paramAndResult("-ftp get-", ftpPath+"/"+fileName, "ftp get status-"+success);       if(!success && !file.isDirectory()){           file.delete();       }   return success;}

奇怪,没有什么问题啊。。

于是,习惯性了看了看vsftpd的日志:

输入命令:tail -n500  /var/log/vsftpd.log

153515_Rz8H_813799.png

很明显日志输出下载失败了,后面几个传输的都是0字节。。。

后来又重复检查了几遍参数,表面上看没有什么问题  嘿嘿~

这到底发生了什么事情了??????

无奈之下,只好Google。。。然而这对我还是没有卵用。。。

在极度的抓狂之下,突然看到传过来的文件路劲是以/home开头的。。。。

于是乎我明白了什么。。。

原来ftp的root目录已经是/home/ftpuser/res/,而传过来的路径是文件的绝对路径。。。

罪魁祸首竟然是配置文件的ftp路径配错了。。。。

修改结束后,测试一下。OK。。。。

心情变得那么些许的美丽了,哈哈

转载于:https://my.oschina.net/runqun/blog/537877

你可能感兴趣的文章
OutLook The profile name you entered already exists.Enter a different profile name.
查看>>
Shell命令-文件压缩解压缩之gzip、zip
查看>>
The Unique MST
查看>>
个人总结
查看>>
uva 673 Parentheses Balance
查看>>
申请Let’s Encrypt免费证书,给自己网站增加https访问
查看>>
javascript+html 实现隐藏 显示
查看>>
BZOJ 2120 数颜色
查看>>
正则表达式学习笔记——基础知识
查看>>
织梦如何实现二级栏目导航的仿制
查看>>
网上购物系统(Task010)——FormView编辑更新商品详细信息
查看>>
Struts2 技术全总结 (正在更新)
查看>>
PowerShell_零基础自学课程_5_自定义PowerShell环境及Powershell中的基本概念
查看>>
Bzoj 2252: [2010Beijing wc]矩阵距离 广搜
查看>>
《编程之美》——寻找发帖“水王”学习与扩展 转surymj博客
查看>>
Linux 虚拟机VMware安装失败,提示没有选择磁盘
查看>>
LeetCode-Permutations
查看>>
SpringMVC的REST风格的四种请求方式
查看>>
漫谈 Clustering (1): k-means(转)
查看>>
从零搭建mongo分片集群的简洁方法
查看>>