2013-03-22 235 views
1

我想从SFTP服务器下载文件到本地机器使用JSch。无论文件大小如何,它只下载16371字节的数据并结束传输。它不会抛出任何异常。如果文件小于16371字节,它将被顺利转移,但对于任何较大的文件,传输都会导致损坏的文件。JSch SFTP文件下载

+1

我想你需要在这里显示一些代码... – Lucas 2013-03-22 20:20:29

+0

我刚刚实例化了ChannelSftp对象并调用get方法。它适用于较小的文件,但在传输16371字节后停止。 – user1544745 2013-03-22 20:29:02

+0

你可以调出JSch对象的日志级别,看看是否有东西跳出来了吗? – Lucas 2013-03-22 20:43:39

回答

0

我有一个特殊的sftp服务器相同的问题。我的独特解决方案是使用LFTP,这是一个用于自动化SFTP任务的linux命令。如果你有一个Linux环境,它非常有用。

PHP示例: $ command = set net:timeout 30;液晶$ directorioDestino; cd/Usr/companies/cdrusr357901/CallCenterRecords /; mget {$ prefijoArchivosAuris} *; bye lftp -u {$ this-> user},{$ this-> password} -e'$ command'sftp:// {$ this-> host}

1

其实我设法解决了这个问题。我换成:

SftpProgressMonitor monitor = new MySftpProgressMonitor(); 
    channelSftp.get(sourceFile, destFile, monitor); 

有:

channelSftp.get(sourceFile, destFile); 

删除进度监控传输是sucesfull后。我猜这是Jsch里面的一个bug。