⑴ ftp如何下载文件
1、打开电脑界面,双击一个浏览器
注意事项:
FTP支持两种模式,一种方式叫做Standard (也就是 PORT方式,主动方式),一种是 Passive(也就是PASV,被动方式)。 Standard模式 FTP的客户端发送 PORT 命令到FTP服务器。Passive模式FTP的客户端发送 PASV命令到 FTP Server。
默认情况下FTP协议使用TCP端口中的 20和21这两个端口,其中20用于传输数据,21用于传输控制信息。但是,是否使用20作为传输数据的端口与FTP使枣做衡用的传输模式有关,如果采用主动模式,那么数据凳做传输端口就是20;如果采用被动模式,则具体最终使用哪个端口胡颤要服务器端和客户端协商决定。
⑵ 用ftp命令打包上传后怎么远程解包
一般情况下,本地直接使用FTP命令也可以连接远程电脑。在地址框中输入FTP://IP地址,然后回车。
在打开的窗口中输入用户名和密码进行验证。
使用专业的FTP软件了,在网络中搜索ftp上传工具就可以看到好多的FTP软件,选择FileZilla进行下载。
下载后,直接双击filezilla.exe打开。
会有安全警告,不影响,直接运行就行。
在打开的窗口最上方,输入远程主机IP,用户名,密码,端口不用输,然后点击“快速连接”。
稍候片刻,就会显示一大堆信息状态,包括“列出目录成功”。这时,说明成功连接到远程服务器。可以看到左侧为本地站点文件夹和文件,右侧为远程电脑的文件夹和文件,现在可以随心所欲地进行远程文件上传下载
⑶ 用java实现FTP需要导入什么包,导入哪里呢,能不能改个包
com.jcraft.jsch_0.1.31.jar,commons-net-3.2.jar。这是我实现FTP上传使用的jar,希望对你有用。
⑷ 对JAVA的两个FTP包进行比较分析
ftp *;
这是一个不被官方支持的 但是放在JDK下面的FTP包 正因做盯为不被支
持 所以没有官方提供API 这是其最大的缺陷之一 最重要由于不是官方支持的
所以文历液档也是没有的
[url]l[/url]
这里有该包的API
先给一个简单的例子 (例子来源互联网)
)显示FTP服务器上的文件
void ftpList_actionPerformed(ActionEvent e) {
String server=serverEdit getText();//输入的FTP服务器的IP地址
String user=userEdit getText(); file://登/录FTP服务器的用户名
String password=passwordEdit getText();//登录FTP服务器的用户名的口令
String path=pathEdit getText();//FTP服务器上的路径
try {
FtpClient ftpClient=new FtpClient();//创建FtpClient对象
ftpClient openServer(server);//连接FTP服务器
ftpClient login(user password);//登录FTP服务器
if (path length()!= ) ftpClient cd(path);
TelnetInputStream is=ftpClient list();
int c;
while ((c=is read())!= ) {
System out print((char) c);}
is close();
ftpClient closeServer();//退出FTP服务器
} catch (IOException ex) {;}
}
)从FTP服务器上下传一个文件
void getButton_actionPerformed(ActionEvent e) {
String server=serverEdit getText();
String user=userEdit getText();
String password=passwordEdit getText();
String path=pathEdit getText();
String filename=filenameEdit getText();
try {
FtpClient ftpClient=new FtpClient();
ftpClient openServer(server);
ftpClient login(user password);
if (path length()!= ) ftpClient cd(path);
ftpClient binary();
TelnetInputStream is=ftpClient get(filename);
File file_out=new File(filename);
FileOutputStream os=new
FileOutputStream(file_out);
纯烂和byte[] bytes=new byte[ ];
int c;
while ((c=is read(bytes))!= ) {
os write(bytes c);
}
is close();
os close();
ftpClient closeServer();
} catch (IOException ex) {;}
}
)向FTP服务器上上传一个文件
void putButton_actionPerformed(ActionEvent e) {
String server=serverEdit getText();
String user=userEdit getText();
String password=passwordEdit getText();
String path=pathEdit getText();
String filename=filenameEdit getText();
try {
FtpClient ftpClient=new FtpClient();
ftpClient openServer(server);
ftpClient login(user password);
if (path length()!= ) ftpClient cd(path);
ftpClient binary();
TelnetOutputStream os=ftpClient put(filename);
File file_in=new File(filename);
FileInputStream is=new FileInputStream(file_in);
byte[] bytes=new byte[ ];
int c;
while ((c=is read(bytes))!= ){
os write(bytes c);}
is close();
os close();
ftpClient closeServer();
} catch (IOException ex) {;}
}
}
看了这个例子 应该就能用他写东西了
这个包缺点很多 首先就是不被支持也不被官方推荐使用
其次是这个包功能过于简单 简单到无法区分FTP服务器上的File是文件还是目录 有人说
通过返回的字符串来判断 但是据说FTP在不同系统下返回的东西不大一样 所以如果通过
判断字符串会有不好移植的问题
自己想出了一个办法 通过FtpClient中的cd方法来判断
代码如下
try{
ftp cd(file);//file为当前判断的文件
//如果过了说明file是目录
}
catch(IOException e){
//说明file是文件
}
finally{
ftp cd( );//返回上级目录继续判断下一文件
}
我用这种方法做过尝试 结果是只能判断正确一部分 有些目录仍会被认做文件 不知道
是我的方法有错还是别的什么原因
如果对FTP服务没有过高的要求 使用这个包还是不错的 因为他本身就包含在JDK中 不
存在CLASSPATH的问题 不需要导入外部包 较为方便
ftp *;
这个包在Jakarta Commons Net library里 现在的最高版本是 可以从以下地址
下载
[url] net [/url]
zip
里面包含了打包好的jar API 及全部的class文件
[url] net [/url]
src zip
这里包含一些例子以及全部的代码
给出一个该包的例子
import ftp *;
public static void getDataFiles( String server
String username
String password
String folder
String destinationFolder
Calendar start
Calendar end )
{
try
{
// Connect and logon to FTP Server
FTPClient ftp = new FTPClient();
nnect( server );
ftp login( username password );
System out println( Connected to +
server + );
System out print(ftp getReplyString());
// List the files in the directory
ftp changeWorkingDirectory( folder );
FTPFile[] files = ftp listFiles();
System out println( Number of files in dir: + files length );
DateFormat df = DateFormat getDateInstance( DateFormat SHORT );
for( int i= ; i
{
Date fileDate = files[ i ] getTimestamp() getTime();
if( pareTo( start getTime() ) >= &&
pareTo( end getTime() ) <= )
{
// Download a file from the FTP Server
System out print( df format( files[ i ] getTimestamp() getTime() ) );
System out println( + files[ i ] getName() );
File file = new File( destinationFolder +
File separator + files[ i ] getName() );
FileOutputStream fos = new FileOutputStream( file );
ftp retrieveFile( files[ i ] getName() fos );
fos close();
file setLastModified( fileDate getTime() );
}
}
// Logout from the FTP Server and disconnect
ftp logout();
ftp disconnect();
}
catch( Exception e )
{
e printStackTrace();
}
}
同 ftp相同 都是先建立FtpClient(注意两包的大小写不同)的实例 然后通过
connect()方法连接 login()方法登陆 但是 ftp *明显比sun
net ftp功能强大很多
ftp *包将FTP中的file单独出来成为了一个新类FTPFile 还有
类FTPFileEntryParser parse 没有仔细研究 但是从字面来看应该是转化为某种形势的
类 有待研究
同时这个mons net jar包中也提供了FTP服务器 telnet mail等一系列类库
ftp *包的缺点在于需要设置classpath 并且需要下载jakarta
oro jar这个包才能运行(如果没有这个包 会在ftp listFiles()方法后抛出找不
到class异常) 此包无须在代码中import 只需设置在classpath中即可 下载地址
[url] oro zip[/url]
如果想要强大的FTP服务 那么 ftp *包应该是你的最好选择 而
且也是开源 免费的
这个包的问题是:
使用Jakarta Commons Net library需要在环境变量里面编辑classpath
这是不方便的地方
lishixin/Article/program/Java/hx/201311/27057
⑸ ftp是什么意思
FTP(FileTransferProtocol),是文件传输协议的简称。用于Internet上的控制文件的双向传输。同时,它也是一个应用程序(Application)。用户可以通过它把自己的PC机与世界各地所有运行FTP协议的服务器相连,访问服务器上的大量程序和信息。
正如其名所示:FTP的主要作用,就是让用户连接上一个远程计算机(这些计算机上运行着FTP服务器程序)察看远程计算机有哪些文件,然后把文件从远程计算机上拷到本地计算机,或把本地计算机的文件送到远程计算机去。需要进行远程文件传输的计算机必须安装和运行ftp客户程序。
在windows操作系统的安装过程中,通常都安装了tcp/ip协早羡掘议软件,其中就包含了ftp客户程序。但是该程序是字符界面而不是图形界面,这就必须以命令提示符的方式进行操作,很不方便。
文件传输协议(FileTransferProtocol,FTP)是用于在网络上进行陆核文件传输的一套标准协议,它工作在OSI模型的第七层,TCP模型的第四层,即应用层,使用TCP传输而不是UDP,客户在和服务器建立连接前要经过一个“三次握手”的过程,保证客户与服务器之间的连接是可靠的,而且是面向连接,为数据传输提供可靠保证。
FTP允许用户以文件操作的方式(如文件的增、删、改、查、传送等)与另一主机相互通信。然而,用户并不真正登录派丛到自己想要存取的计算机上面而成为完全用户,可用FTP程序访问远程资源,实现用户往返传输文件、目录管理以及访问电子邮件等等,即使双方计算机可能配有不同的操作系统和文件存储方式。