2014-10-20 77 views
-1

我想用apache.commons.net.ftp.FTPClient转移一个pgp文件,结果似乎成功了,但是当我想将它转换为txt文件我遇到这个错误: gpg:[不知道]:无效的数据包(ctb = 20)使用apache.commons.net不完整地从ftp服务器下载pgp文件

当我检查下载文件的确切大小时,我注意到它的大小约小于1KB原始文件。

这里是下载文件的代码:

  FileOutputStream fos = new FileOutputStream(Localfilename); 
      InputStream inputStream = ftpClient.retrieveFileStream(remoteFileDir); 
      IOUtils.copy(inputStream, fos); 
      fos.flush(); 
      IOUtils.closeQuietly(fos); 
      IOUtils.closeQuietly(inputStream); 
      boolean commandOK = ftpClient.completePendingCommand(); 

任何人可以了解什么是错用我的方式或代码?

[编辑]指出,原始文件解码(转换为TXT)成功,所以下载文件时发生问题。

[edited2]我在我的Windows桌面上运行该程序,并在Windows下载文件,解码没有问题,我明白当我用Linux服务器运行我的程序时,会出现此问题!

+0

你可以得到IOUtils.copy返回的int值,并检查它是否等于期望的字节数? – 2014-10-20 14:02:47

+0

我想你的代码的相关位缺失。难道是你试图传输一个二进制文件,但FTPClient被设置为传输文本文件 - FTPClient.setFileType(...)? – jarnbjo 2014-10-20 14:10:06

+0

@jarnbjo当我想传输pgp文件时,应该将filetype设置为什么? – Narges 2014-10-20 14:15:10

回答

0

我发现我的问题! 问题在于处理远程路径,这是一个愚蠢的错误! 所以如果有任何人有这个问题,重新检查并重新检查地址。

相关问题