精华内容
下载资源
问答
  • java连接FTP服务器

    千次阅读 2019-06-03 00:05:57
    这一期,我们来学习一下如何用Java连接FTP服务器。在工程项目中,我们往往需要连接FTP服务器。当我们有此需求时,可以从两个方面考虑。第一,根据FTP协议自己写出一套程序,这是一种思路,当然这是一件很费时又耗...

           这一期,我们来学习一下如何用Java连接FTP服务器。在工程项目中,我们往往需要连接FTP服务器。当我们有此需求时,可以从两个方面考虑。第一,根据FTP协议自己写出一套程序,这是一种思路,当然这是一件很费时又耗成本的一件事。我们是工程师,我们的目的是把需求实现,而不是科研项目。所以得考虑另一种思路,去寻找已经做好的API。好巧,刚好有一个开源组织为我们做好了这个API,那就是伟大的Apache。下面就开始时根据Apache给我们提供的API完成我们的需求。

          第一步,下载jar包,登录官网如下:

    然后找到“Projects”点进去,出现下拉框。点击“Project List”

     

     

    找到Commons点进去

     

    往下滑,找到“net”

    点进去,然后在左上角找到“download”

     

    点击然后往下滑,找到如图

    其中Binaries是编译后的jar,Source是源代码。一般使用的是编译后的jar,将其下载,下载之后就是新建项目导jar包。如何导jar,不会再这里说。此时,我们jar已经准备好。我们还需要一个ftp服务器,如何建立ftp服务器也不会再这里说。现在假设你已经创建好项目,已经建立好ftp服务器,下面就直接上代码了。

    package my;
    
    import java.io.File;
    import java.io.FileInputStream;
    import java.io.FileNotFoundException;
    import java.io.FileOutputStream;
    import java.io.IOException;
    import java.io.InputStream;
    import java.io.OutputStream;
    import java.io.UnsupportedEncodingException;
    import java.text.SimpleDateFormat;
    
    import org.apache.commons.net.ftp.FTP;
    import org.apache.commons.net.ftp.FTPClient;
    import org.apache.commons.net.ftp.FTPFile;
    import org.apache.commons.net.ftp.FTPReply;
    
    public class TestFTPClient
    {
    	// API里对中文FTP目录的处理有点问题
    	// 在调用 changeWorkingDirectory() / listFiles()等方法时,将参数路径转换一下
    	public static String ftpPath(String path)
    	{
    		try
    		{
    			return new String(path.getBytes("UTF-8"), FTP.DEFAULT_CONTROL_ENCODING);
    		} catch (UnsupportedEncodingException e)
    		{
    			return "";
    		}
    	}
    
    	public static void main(String[] args) throws Exception
    	{
    		FTPClient ftp = new FTPClient();
    
    		// 连接服务器
    		ftp.connect("127.0.0.1", 21);
    		int reply = ftp.getReplyCode();
    		if (!FTPReply.isPositiveCompletion(reply))
    		{
    			ftp.disconnect();
    			System.out.println("** 无法连接至FTP服务器!");
    			System.exit(1);
    		}
    
    		if (!ftp.login("test", "123456"))
    		{
    			ftp.logout();
    			System.out.println("** 错误的用户名或密码!");
    			System.exit(1);
    		}
    
    		System.out.println("Connected.");
    
    		// 字节传输 BINARY_FILE_TYPE
    		// 文本传输 ASCII_FILE_TYPE
    		// 一般使用BINARY模式来传输文件,很少使用 ASCII_FILE_TYPE
    		ftp.setFileType(FTP.BINARY_FILE_TYPE);
    
    		// 主动模式: enterLocalActiveMode()
    		// 被动模式: enterLocalPassiveMode()
    		// 一般选择被动模式
    		ftp.enterLocalPassiveMode();
    
    		// 设置控制通道的字符集, 要与服务端的设定一致
    		ftp.setControlEncoding("UTF-8");
    		// 切换目录 ( 用ftpPath() 转换一下 )
    		// boolean rc = ftp.changeWorkingDirectory(ftpPath("/图片"));
    		// if(!rc)
    		// {
    		// System.out.println("切换目录出错!");
    		// }
    		// ...
    		//
    		// 列出所有的文件/子目录
    		// listFile(ftp);
    		//上传一个文件
    		//upload(ftp);
    		// 下载一个文件
    		download(ftp);
    		ftp.logout();
    		ftp.disconnect();
    		System.out.println("Quit.");
    	}
    
    	public static void listFile(FTPClient ftp)
    	{
    		SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
    		System.out.println("> list");
    		FTPFile[] ftpFiles;
    		try
    		{
    			ftpFiles = ftp.listFiles();
    			for (FTPFile f : ftpFiles)
    			{
    				String time = sdf.format(f.getTimestamp().getTime());
    				String info = "";
    				if (f.isDirectory())
    					info = String.format("+ %-20s", f.getName());
    				else
    					info = String.format("  %-20s %8d   %s", f.getName(), f.getSize(), time);
    
    				System.out.println(info);
    			}
    		} catch (IOException e)
    		{
    			// TODO Auto-generated catch block
    			e.printStackTrace();
    		}
    
    	}
    
    	// 上传一个文件
    	public static void upload(FTPClient ftp)
    	{
    		File localFile = new File("E:\\代码\\HBiuder.zip");
    		InputStream inStream;
    		OutputStream outStream;
    		try
    		{
    			String remotePath = ftpPath(localFile.getName());
    			inStream = new FileInputStream(localFile);
    			//
    			// 小文件直接 用
    			// ftp.storeFile(remotePath, inStream);
    			//大文件时用这个方法
    			outStream = ftp.storeFileStream(remotePath);
    			// 大文件,可以自己掌握进度
    			byte[] buffer = new byte[4000];
    			while (true)
    			{
    				int n = inStream.read(buffer);
    				if (n <= 0)
    					break;
    
    				outStream.write(buffer, 0, n);
    			}
    			inStream.close();
    			outStream.close();
    
    		} catch (FileNotFoundException e1)
    		{
    			// TODO Auto-generated catch block
    			e1.printStackTrace();
    		} catch (IOException e)
    		{
    			// TODO Auto-generated catch block
    			e.printStackTrace();
    		}
    
    	}
    	//文件下载
    	public static void download(FTPClient ftp) throws Exception
    	{
    	       File localFile = new File("D:/tmp/copy.zip");
    	        localFile.getParentFile().mkdirs();
    	        
    	        
    	        // 
    	        String remotePath = ftpPath("/HBiuder.zip");
    	        OutputStream outStream = new FileOutputStream(localFile);
    	             
    	        // 小文件直接 用 
    	        // ftp.retrieveFile(remotePath, outStream);
    	        
    	        // 大文件,可以自己掌握进度
    	        InputStream inStream = ftp.retrieveFileStream(remotePath);
    	        if(inStream == null)
    	        	throw new Exception("远程文件不存在!" + remotePath);
    	        
    	        byte[] buffer = new byte[4000];
    	        while(true)
    	        {
    	        	int n =inStream.read(buffer);
    	        	if(n <= 0) break;
    	        	
    	        	outStream.write(buffer,0,n);
    	        }
    	        inStream.close();
    	        outStream.close();
    	}
    
    }
    

     仅供参考,如有不足,多多指教。

    展开全文
  • 命令行连接FTP服务器

    万次阅读 多人点赞 2018-07-24 14:31:32
     输入 open ip地址 端口,进入ftp服务器,如open 172.16.3.77 2121。如下图: 输入Windows下的用户名,然后输入密码(注意:密码是不显示的,输入用户名密码不能时间太长,否则连接断掉)。 查看ftp服务器中...

    Windows下:

    打开命令行窗口,输入  ftp,进入ftp命令模式:

     输入  open ip地址 端口,进入ftp服务器,如open 172.16.3.77  2121。如下图:

    输入Windows下的用户名,然后输入密码(注意:密码是不显示的,输入用户名密码不能时间太长,否则连接断掉)。

    查看ftp服务器中的文件,输入  ls,也可以使用  dir。两者的区别如下:

    使用 cd  文件夹名,进入“文件夹名”下,cd  .. 表示进入上一级目录。

    想要下载文件时,使用 get  ftp上文件的地址  本地计算机存放地址 ,地址中要包含文件的名称、后缀,如果不写本地存放地址,则放在启动ftp命令时的地址,一般都是C:\Users\Administrator中。如果想要改变,使用命令 lcd  目录,进入相应的目录,如果只写 lcd ,则显示本地计算机中当前的目录。使用 mget * 用来下载当前ftp服务器目录下的所有文件(不包含文件夹),使用 mget   *.txt 下载当前目录下的所有后缀为txt的文件。如下图

    想要上传文件,使用 put  本地文件地址  ftp服务器上的地址,地址中包含文件名,如果不写ftp服务器上的地址,则上传到ftp服务器上的当前目录,使用 pwd 命令可以知道FTP服务器当前的目录,如下图

    使用 mput  *.txt 可以批量上传文件,如下图

     使用 rename 旧的名称  新的名称 ,给FTP服务器上的文件改名。如下图

    delete 文件名称,删除远程目录上的文件,使用mdelete可以删除多个文件;rmdir 远程目录,删除远程目录;mkdir  目录名称,创建远程目录;不能创建远程文件。quit、bye都可以结束远程连接并退出ftp。

     

    展开全文
  • SAP连接FTP服务器

    千次阅读 2017-08-22 16:48:52
    SAP系统中连接FTP服务器需要配置表SAPFTP_SERVERS,在这个表中添加ftp服务器及端口,然后使用如下代码连接ftp服务器 constants cons_key type i value 26101957. data:lv_pwd(64) type c, lv_handle ...

    SAP系统中连接FTP服务器需要配置表SAPFTP_SERVERS,在这个表中添加ftp服务器及端口,然后使用如下代码连接ftp服务器

       
       constants cons_key type i  value 26101957.
    
        data:lv_pwd(64)   type c,
             lv_handle    type i,
             lv_length    type i,
             lv_pwdlen    type i.
    
        lv_pwd = is_ftpinfo-password.
        lv_pwdlen = strlen( lv_pwd ).
    
    *密码加密
        call function 'HTTP_SCRAMBLE'
          exporting
            source      = lv_pwd
            sourcelen   = lv_pwdlen
            key         = cons_key
          importing
            destination = lv_pwd.
    
        do 3 times." 连接三次,以为一次可能会不成功
    * 连接FTP服务器
          call function 'FTP_CONNECT'
            exporting
              user            = is_ftpinfo-username
              password        = lv_pwd             "PASS WORD
              host            = is_ftpinfo-host
              rfc_destination = 'SAPFTPA'        "DEFAULT
            importing
              handle          = ev_handle
            exceptions
              not_connected   = 1
              others          = 2.
    
          if sy-subrc = 0.
            exit.
          endif.
        enddo.
    
        rv_subrc = sy-subrc.

    展开全文
  • linux下常用FTP命令 1 连接ftp服务器

    千次阅读 2019-04-29 15:13:27
    linux下常用FTP命令 1 连接ftp服务器
                   
    1. 连接ftp服务器

    格式:ftp [hostname| ip-address]
    a)在linux命令行下输入:

    ftp 192.168.1.1

    b)服务器询问你用户名和密码,分别输入用户名和相应密码,待认证通过即可。

    2. 下载文件

    下载文件通常用get和mget这两条命令。
    a) get 
    格式:get [remote-file] [local-file]
    将文件从远端主机中传送至本地主机中。
    如要获取远程服务器上/usr/your/1.htm,则

    ftp> get /usr/your/1.htm 1.htm (回车)


    b) mget      
    格式:mget [remote-files]
    从远端主机接收一批文件至本地主机。
    如要获取服务器上/usr/your/下的所有文件,则

    ftp> cd /usr/your/
    ftp> mget *.* (回车)


    此时每下载一个文件,都会有提示。如果要除掉提示,则在mget *.* 命令前先执行:prompt off

    注意:文件都下载到了linux主机的当前目录下。比如,在 /usr/my下运行的ftp命令,则文件都下载到了/usr/my下。

    3.上传文件

    a) put
    格式:put local-file [remote-file]
    将本地一个文件传送至远端主机中。
    如要把本地的1.htm传送到远端主机/usr/your,并改名为2.htm

    ftp> put 1.htm /usr/your/2.htm (回车)


    b) mput
    格式:mput local-files
    将本地主机中一批文件传送至远端主机。
    如要把本地当前目录下所有html文件上传到服务器/usr/your/ 下

    ftp> cd /usr/your (回车)
    ftp> mput *.htm (回车)


    注意:上传文件都来自于主机的当前目录下。比如,在 /usr/my下运行的ftp命令,则只有在/usr/my下的文件linux才会上传到服务器/usr/your 下。

    4. 断开连接
    bye:中断与服务器的连接。

    ftp> bye (回车)


               
    展开全文
  • linux 命令 连接ftp服务器

    千次阅读 2015-07-20 13:50:34
    1. 连接ftp服务器 格式:ftp [hostname| ip-address] a)在linux命令行下输入: ftp 192.168.1.1 b)服务器询问你用户名和密码,分别输入用户名和相应密码,待认证通过即可。 2. 下载文件 下载文件...
  • 如果使用FileZilla默认设置连接ftp服务器的话可能会报以下错误: 错误:无法建立数据连接:ECONNREFUSED - Connection refused by server 错误:连接超时 错误:读取目录列表失败 解决的办法是把传输模式改为主动 ...
  • java实现连接FTP服务器,实现文件的上传和下载 最近项目需要使用FTP服务器,来进行文件的上传和下载!本文主要介绍连接FTP服务器,进行文件的上传和下载,至于如何搭建FTP服务器,网上有很多教程,大家可以自行百度...
  • FTPClient连接FTP服务器

    千次阅读 2017-10-25 16:03:22
    最近项目新需求,需要从服务器上下载文件,...对于ftp连接,其实还是遇到了很多问题的, 代码问题不大, 因为基本上就是通过host,port,username,password直接连接即可,(下面要说的主要是在java代码中的操作以及输
  • ![图片说明]... Windows server 2008配置FTP服务器后 客户端连接FTP服务器时总是不成功 提示:ftp将数据发送到服务器之前不加密或编码密码或数据,要保护密码和数据的完全用webdav
  • Xshell连接FTP服务器

    千次阅读 2019-10-27 22:55:52
    运行一下python代码以启动ftp服务器 from pyftpdlib.handlers import FTPHandler from pyftpdlib.servers import FTPServer from pyftpdlib.authorizers import DummyAuthorizer authorizer = DummyAuthorizer() ...
  • linux下常用FTP命令 1. 连接ftp服务器

    万次阅读 2015-12-18 10:13:58
    1. 连接ftp服务器 格式:ftp [hostname| ip-address] a)在linux命令行下输入: ftp 192.168.1.1 b)服务器询问你用户名和密码,分别输入用户名和相应密码,待认证通过即可。 2. 下载文件 下载文件...
  • python连接FTP服务器

    千次阅读 2017-10-07 23:41:25
    Python中默认安装的ftplib模块定义了FTP类,可用来实现简单的ftp函数。from ftplib import FTP ip = '192.168.8.88' port = 21 def test_ftp(): ftp=FTP() ftp.connect(ip,port) ftp.login("ftpuser","123")#如果...
  • 前几天还是能正常连接ftp服务器的,突然一下连接失败,提示"AUTH TLS",用浏览器试了一下"ftp:ip地址",输入用户名、密码后可以正常访问。所以应该是FileZilla软件连接配置有点问题,百度了一下就解决了。记录下解决...
  • #!/bin/bash#日期初始化 T-1天#dt=$(date -d '-1 day' '+%Y%m%d')#拼接数据文件ftp服务器上的地址dt=$1sys=$2file_name=$3file_name_tail=".txt.gz"ftp_url="...#连接ftp服务器#ftp服务器IP...
  • 【Python】连接FTP服务器

    千次阅读 2019-06-21 19:12:31
    使用python登录到ftp服务器: #!/usr/local/bin/python3 #coding=utf-8 import ftplib host="xxx.xxx.xxx.xxx" #ip或域名 username="xxx" password="xxx" ftpServer=ftplib.FTP(host) ftpServer.encoding = "utf-8...
  • 使用批处理命令连接FTP服务器

    万次阅读 2020-03-15 19:37:20
    以下我就通过ftp命令下载服务器目录下“code”中的所有文件,命令如下。 ftp 192.168.0.2 admin admin cd code mget * 倘若每次都需要这样操作的时候,我只需要将操作的内容写成脚本。 例如:up.txt open ...
  • 使用XFTP软件进行连接FTP服务器

    千次阅读 2019-12-06 11:51:39
    二、创建FTP服务器连接 三、填写FTP服务器基本信息 1.填写FTP主机IP,协议一般默认为FTP 2.端口20、21 3.如果服务器支持匿名登录的话可勾选直接登录 4.不支持匿名登录,则填写FTP账号密码登录(不同账号可分配不同...
  • Java连接FTP服务器并且实现对其文件的上传和下载

    万次阅读 多人点赞 2015-11-12 17:46:26
    概述  FTP是File Transfer Protocol(文件传输协议)的英文简称,而中文简称为“文传协议”。FTP作为网络共享文件的传输协议,在网络应用软件...本文就主要针对这两个操作来进行说明(当然,也包括FTP服务器连接...
  • 连接FTP服务器问题1. IE 浏览器访问FTP , a) 地址栏输入ftp地址。输入用户名:密码: 2. 谷歌浏览器可以正常访问,没有资源管理器视图3. Windows 资源管理器访问(其实就是ie访问)4. Java 使用org.apache....
  • java 连接ftp服务器 从页面进行下载

    千次阅读 多人点赞 2018-06-13 15:13:35
    昨天来的个需求,我们的客户需要下载对账文件的话,需要自己去登录ftp 服务器去进行下载本身是有商户后台,所以想吧这个功能直接添加到商户后台页面上,web进行下载。这是背景。之前没有了解过这个,所以还是在网上...
  • 如何连接ftp服务器

    千次阅读 2017-10-10 13:54:12
    windows下下载flshfxp进行连接。如pasv模式连接失败,过一段时间会自动用port模式连接。 参考http://jingyan.baidu.com/article/36d6ed1f58dbe41bcf488381.html
  • 连接ftp服务器 227错误

    千次阅读 2018-10-09 10:12:25
    一:修改ie internet设置 高级去掉使用被动ftp ; 二: ftp&gt; passive Passive mode off. ftp&gt; passive (再次运行命令可打开)   Passive mode on.
  • FlashFXP连接ftp服务器上传下载

    千次阅读 2017-06-15 10:44:04
    第二步:点击连接下的FTP,修改数据连接模式为被动模式 第三步:点击站点------站点管理------FlashFXP站点-------新建站点  站点名称任意,地址为远程的ip地址,用户名称和密码为ftp服务

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 352,002
精华内容 140,800
关键字:

怎么连接ftp服务器