从SFTP位置下载zip或exe文件

时间:2012-08-30 10:00:08

标签: java sftp j2ssh

以下是我的应用程序中的两个代码段,并使用J2SSH jar进行SFTP访问。

第一个:

 .........
 .........
 //Open the SFTP channel
 com.sshtools.j2ssh.SftpClient client = sshClient.openSftpClient();
 // writing from source path to outputstream
 client.get("/Repository/Test/index.zip", outputStream);            
 ........
 ........

第二个(JSP文件):

response.setContentType("application/octet-stream");
response.setHeader("Content-disposition","attachment; filename=index.zip");
BufferedOutputStream bos = new BufferedOutputStream(response.getOutputStream());
client.fillOutputStream(bos);    //  this method calls to first block code.
bos.flush();
bos.close();
response.flushBuffer(); 

在应用程序中一切正常,没有任何例外。 下载文本文件时没有问题。 但是在尝试下载zip或exe文件时,其中缺少一些东西。 即使下载成功,文件也无法提取或无法执行。

Plz建议我可能是其中的问题....特别是它应该适用于exe文件......

1 个答案:

答案 0 :(得分:1)

对于这类工作,我使用http://commons.apache.org/vfs/

StandardFileSystemManager manager = new StandardFileSystemManager();
FileObject target = manager.resolveFile("file://" + path + File.separator + filenameTarget);
FileObject source = manager.resolveFile(sftpUri + path + File.separator + filenameSource, options);
target.copyFrom(fichierSource, Selectors.SELECT_SELF);