2012-07-02 227 views
1

我正在构建一个基于java的web应用程序。要将一个目录及其中的文件从我的用户客户端上传到我的服务器机器,我使用仅支持ftp的客户端Java小程序。如何用sftp上传目录

如何使用sftp和java上传包含文件的目录?

+0

我想在jsp页面上给出一个文本区域,用户可以粘贴他想要上传的本地目录的路径,点击提交按钮他的目录已经上传但是我想使用sftp并且我已经配置了ftp服务器在我的服务器机器上 – ankit

+0

只是有关端口的快速信息。 Ftp使用端口21,默认情况下SFTP使用22 [或任何sysad配置它]。请参阅:http://serverfault.com/questions/74176/what-port-does-sftp-use –

回答

1

“只有ftp”不会用“sftp”。要么你需要一个sftp-applet或在你的服务器上启用ftp。

+0

SFTP不只是'安全的FTP'。这是一个完全不同的协议。 –

+0

嗨,让Philippe Briend,这意味着首先我必须配置一个sftp服务器。并有任何java api的可用,以便目录/文件传输可以通过sftp – ankit

0

使用SFTP是一个好主意,因为FTP会遇到一些安全问题。

您将需要找到SFTP客户端类来使用您将提供给用户的Java客户端小程序,而不是您现在使用的FTP类。

而且,您将需要在您的服务器硬件上安装SFTP服务器软件包,因此您的客户端小应用程序需要连接一些东西。 (有可能你的服务器硬件已经有了这个包,在这种情况下你需要激活它并配置它)。

最后,你需要明白SFTP和FTP并不真的提供原始操作“upload a directory “。您的客户端Java软件将需要弄清楚如何上载用户机器目录中的所有文件。

+0

实际上我正在使用zehon库(http://www.zehon.com)上传目录到sftp。它工作正常,如果我从本地机器上传到本地sftp服务器,但远程用户无法上传目录 – ankit

+0

我已经安装了openssh服务器,我可以通过命令行从远程机器上传文件。 – ankit

0

我使用JSCH aip(Link)来提供sftp应用程序。 Jsch没有帮助上传目录的方法,您可以在要下载的目录中获取所有文件路径,然后将它们传递给上传方法(put(....)在ChannelSftp类中)。