-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服务器运行我的程序时,会出现此问题!
你可以得到IOUtils.copy返回的int值,并检查它是否等于期望的字节数? – 2014-10-20 14:02:47
我想你的代码的相关位缺失。难道是你试图传输一个二进制文件,但FTPClient被设置为传输文本文件 - FTPClient.setFileType(...)? – jarnbjo 2014-10-20 14:10:06
@jarnbjo当我想传输pgp文件时,应该将filetype设置为什么? – Narges 2014-10-20 14:15:10