CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
山寨机中的战斗机! 程序优化工程师到底对IT界有没有贡献
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  VB >  基础类

用vb 实现ftp 上传、下载, 在线等待,谢谢!

楼主ICAC2008(廉政公署)2002-09-13 10:36:23 在 VB / 基础类 提问

怎样在vb中实现ftp   上传、下载,多谢了!  
  我是说怎么样用vb编程序来实现,最好给点源代码,多谢了 问题点数:30、回复次数:12Top

1 楼wind0209(风のFeeling)回复于 2002-09-13 10:45:44 得分 15

找一下,有一个INET控件  
  With   Inet1  
        .URL   =   "ftp://ftp.someFTPSite.com"  
        .UserName   =   "John   Smith"  
        .Password   =   "mAuI&9$6"  
        .Execute   ,"DIR"       '返回该目录。  
        .Execute   ,"CLOSE"   '关闭连接。  
  End   With  
   
  在调用   Execute   方法之后,FTP   连接仍旧打开着。这时可以继续使用   Execute   方法完成其它   FTP   操作,比如   CD   和   GET。如果会话已经完成,使用   Execute   方法执行   CLOSE   操作以关闭连接。也可以通过改变   URL   属性,并调用   OpenURL   或   Execute   方法,自动关闭该连接,这样的操作会关闭当前   FTP   连接,并打开新的   URL。  
   
  操作   描述   示例    
  CD   file1   改变目录。改变到由   file1   指定的目录中。   Execute   ,   "CD   docs\mydocs"  
     
  CDUP   改变到父目录。功能与“CD   ..”相同。   Execute   ,   "CDUP"  
     
  DELETE   file1   删除由   file1   指定的文件。   Execute   ,   "DELETE   discard.txt"  
     
  DIR   [file1]   在由   file1   指定的目录中查找。如果没有指定   file1   目录,则查找当前工作目录。使用   GetChunk   方法返回数据。   Execute   ,   "DIR   /mydocs"  
     
  GET   file1   file2   获取由   file1   指定的远程文件,并创建由   file2   指定的新的本地文件。   Execute   ,   _  
  "GET   getme.txt   C:\gotme.txt"  
   
     
  MKDIR   file1   创建由   file1   指定的目录。是否能够成功地执行,取决于用户在远程主机上的权限。   Execute   ,   "MKDIR   /myDir"  
     
  PUT   file1   file2   将由   file1   指定的本地文件,复制到由   file2   指定的远程主机文件中。   Execute   ,   _  
  "PUT   C:\putme.txt   /putme.txt"  
   
     
  PWD   打印工作目录。返回当前目录的名称。用   GetChunk   方法返回数据。   Execute   ,   "PWD"  
     
  QUIT   结束当前连接。   Execute   ,   "QUIT"  
     
  RECV   file1   file2   与   GET   相同。   Execute   ,   _  
  "RECV   getme.txt   C:\gotme.txt"  
   
     
  RENAME   file1   file2   文件重命名。是否能够成功地执行,取决于用户在远程主机上的权限。   Execute   ,    
  "RENAME   old.txt   new.txt"  
   
     
  RMDIR   file1   删除目录。是否能够成功地执行,取决于用户在远程主机上的权限。   Execute   ,   "RMDIR   oldDir"  
     
  SEND   file1   将文件复制到   FTP   站点。(与   PUT   相同)   Execute   ,   _  
  "SEND   C:\putme.txt   /putme.txt"  
   
     
  SIZE   file1   返回由   file1   指定文件的大小。   Execute   "SIZE   /largefile.txt"  
     
   
  -----------------------------------  
  看的懂编不来Top

2 楼ICAC2008(廉政公署)回复于 2002-09-13 10:47:40 得分 0

最好有原代码、程序给我参考一下,谢谢Top

3 楼online(龙卷风V4.0--决战江湖(MS MVP-VB))回复于 2002-09-13 11:03:01 得分 0

可以给你一个  
  yyg@xjeri.com.cn  
   
  Top

4 楼ICAC2008(廉政公署)回复于 2002-09-13 11:09:12 得分 0

我的EMAIL:orange0006@163.comTop

5 楼cityeremite(无知无畏)回复于 2002-09-13 11:25:17 得分 15

VB程序员的FTP编程指南1.1-文件传输协议FTP概述         qianqian(翻译)      
       
  关键字           VB,FTP    
       
  出处           http://www.1000vb.net    
       
   
  专   题:文件传输协议FTP概述  
  主   讲:qianqian    
   
  FTP简介  
  直到1994年,当WWW掌管Internet时,文件传输协议(FTP)是和e-mail一样最广泛应用的Internet客户程序。它被用于作为访问Internet主机文件的一个远程外壳。使用ftp可以连接到一个FTP服务器,在可用的目录间游历,并且传输文件。  
   
  一个FTP站点可以是公用的,私有的,或者两者兼有之。使用一个私有的账号,你可以拥有访问整个网络的目录结构,或者只是特定的区域的权限。  
   
  Internet同时也是一个拥有很多允许任何人连接和传输文件的FTP服务器的中心,不管他们有没有主机上的账号。这叫做匿名FTP。当你登录到一个匿名FTP战点时,你通常使用“anonymous”作为你的用户名,“guest”或你的   e-mail地址作为密码。例如,匿名FTP经常用于发布大量的公用领域或共享软件。其中一个著名的公用FTP站点是ftp.cica.indiana.edu。  
   
  FTP主要设计目的是用于程序之中,不过FTP程序自身已经成为任何一个TCP/IP实施的重要部分。当你在Windows   3.11、Windows95或Windows   NT中使用Microsoft的TCP/IP驱动程序时,FTP.exe将被安装。  
   
  实际上,FTP已经包含于Netscape和其它的WWW浏览器中,因此你可以使用浏览Web的程序同时浏览FTP服务器。  
   
  根据RFC   959所述,设计FTP协议有四个目的:  
   
  1.   促进文件的共享(计算机程序或数据)。    
  2.   鼓励间接地或暗示性地(通过程序)使用远程计算机      
  3.   把用户隐蔽在主机文件系统的多变性之外    
  4.   为了传输文件的可靠性和效率    
  为什么你要使用FTP?  
  如果你正在编写一个要进行相当数量的文件传输的程序,并且考虑使用FTP作为你的主要文件传输方式,你必须知道一些事情。首先,FTP是一个客户机/服务器协议。使用FTP在同一台机器把一个程序的文件传送到另外一个程序的做法是不可取的。你只能在要把文件传输到一个已知的FTP服务器的情况下才能考虑使用FTP,或者你想要编写一个通用的FTP客户程序。  
   
  有时候你可以把FTP服务器作为一个仓库来存贮你的系统中所有用户共享的文件,这是个不错的主意。它完全取决于你的项目目标是什么。如果你要让你的用户访问一系列的共享文件,FTP是一个不错的工具。  
   
  FTP没有类似VB的Open,   Input   #,   和   Print   #等文件控制语句。如果你的项目需要你打开一个远程的文件并在文件层次打开它,FTP是无能为力的。FTP主要用于获得目录列表和传输文件。  
   
    FTP程序  
  Windows有内建的FTP程序FTP.EXE,如图1,它是一个DOS程序。  
   
   
  图   1     FTP   窗口.  
   
  连接和登录  
  运行FTP.EXE后将看到如下的提示符:  
   
  ftp>   _  
   
  你可以用OPEN命令连接任何FTP站点。例如,你可以使用以下命令连接到Microsoft的公共FTP站点:  
   
  ftp>   open   ftp.microsoft.com   <enter>  
   
   
  此时程序将尝试在21号端口连接到服务器。如果连接成功,你将得到一个220的回答,后面是欢迎信息。  
   
  Connected   to   ftp.microsoft.com.  
  220   ftp   Microsoft   FTP   Service   (Version   1.0).  
   
  下面你将提示输入你的用户名。对于公共访问(匿名FTP),直接打anonymous即可:  
   
  User   (ftp.microsoft.com:(none)):   anonymous  
  331   Anonymous   access   allowed,   send   identity   (e-mail   name)   as   password.  
   
  下面是输入密码。如果是匿名访问输入你的EMail地址即可。  
   
  Password:  
   
  然后服务器将允许你的访问,并提示另外的欢迎信息。你可以使用一系列固定的命令来访问站点。  
   
  230-This   is   ftp.microsoft.com.     See   the   index.txt   file  
    in   the   root   directory   for   more   information  
  230   Anonymous   user   logged   in   as   anonymous.  
   
  专   题:列出、改变目录  
  主   讲:qianqian    
   
  列出目录  
  你可以使用DIR命令来列出目录。实际上,DIR并不是FTP规定的命令,但是标准的用户界面从操作系统借用了这个命令。  
   
  图2   显示了DIR命令的结果。最右边是文件或目录的名称,然后是文件日期和时间。然后是10位的文件属性。你可以通过"d"属性分别目录或文件。如果是"d",表示这是个目录。  
   
  改变目录  
  你可以通过CD命令改变目录。和DOS命令的区别是它使用正斜杠。例如改变目录到   /developr/vb   directory:  
   
  ftp>   cd   developr/vb  
  250   CWD   command   successful.  
   
  再次使用DIR命令,你可以获得文件列表。图3   显示了   DIR命令在ftp.microsoft.com的   /developr/vb   目录的执行结果。  
   
   
  --------------------------------------------------------------------------------  
   
  图   2   DIR命令  
   
  ftp>dir  
  200   PORT   command   successful.  
  150   Opening   ASCII   mode   data   connection   for   /bin/ls.  
  d-----           1   owner   group               0       Jul     3   13:52         bussys  
  d-----           1   owner   group               0       Aug     9     3:00         deskapps  
  d-----           1   owner   group               0       Oct   27     7:35         developr  
  -----             1   owner   group         7905       Oct     5     8:53         dirmap.htm  
  -----             1   owner   group         4510       Oct     5     8:52         dirmap.txt  
  -----             1   owner   group           712       Aug   25     1994         disclaimer.txt  
  -----             1   owner   group           860       Oct     5     1994         index.txt  
  d-----           1   owner   group                       Aug   31     12:17       KBHelp  
  -----             1   owner   group   7393252       Nov   28     4:04         ls-lR.txt  
  -----             1   owner   group     914179       Nov   28     4:05         ls-lR.Z  
  -----             1   owner   group     766409       Nov   28     4:04         LS-LR.ZIP  
  d-----           1   owner   group               0       Oct   20     9:27         MSCorp  
  -----             1   owner   group       28160       Nov   28     1994         MSNBRO.DOC  
  -----             1   owner   group       22641       Feb     8     1994         MSNBRO.TXT  
  d-----           1   owner   group               0       Oct   11     3:00         peropsys  
  d-----           1   owner   group               0       Aug   23     21:55       Products  
  d-----           1   owner   group               0       Oct     5     8:46         Services  
  d-----           1   owner   group               0       Nov   22     14:38       Softlib  
  -----             1   owner   group         5095       Oct   20     1993   support-phones.txt  
  -----             1   owner   group           802       Aug   25     1994         WhatHappened.txt  
  226   Transfer   complete.  
  1407   bytes   received   in   0.99   seconds   (1.42   Kbytes/sec)  
   
   
  --------------------------------------------------------------------------------  
   
  图   3   Microsoft的/developr/vb   directory目录  
   
  ftp>   dir  
  200   PORT   command   successful.  
  150   Opening   ASCII   mode   data   connection   for   /bin/ls.  
  d-----                 1   owner   group                               0   Oct   25     6:39   kb  
  d-----                 1   owner   group                               0   Feb   24   11:35   public  
  -----                   1   owner   group                         1571   Aug   24     1994   README.TXT  
  d-----                 1   owner   group                               0   Aug   24     1994   unsup-ed  
  226   Transfer   complete.  
  270   bytes   received   in   0.22   seconds   (1.23   Kbytes/sec)  
     
  下载  
  用ftp下载文件简单而直接。在下载之前,请保证你是在二进制模式下。ftp有两种文件传输模式,ASCII模式和二进制模式。为了转换到二进制模式,可以使用BIN命令。  
   
  ftp>   bin  
  200   Type   set   to   I.  
   
  返回ASCII模式,请使用ASC命令。  
   
  GET命令用来获取文件。如果你想在默认目录使用原始文件名下载文件,你要输入GET   <filename>   <回车>.   见图4。  
   
  你可以只输入GET,系统会提示你要下载的文件名,然后提示你存储到的新文件名(及目录)。  
   
   
  --------------------------------------------------------------------------------  
   
  图   4   Get命令  
   
  ftp>   get   readme.txt  
  200   PORT   command   successful.  
  150   Opening   BINARY   mode   data   connection   for   readme.txt(1571   bytes).  
  226   Transfer   complete.  
  1571   bytes   received   in   3.46   seconds   (0.45   Kbytes/sec)  
   
   
  --------------------------------------------------------------------------------  
   
  上传  
  你可以使用SEND命令上传文件。当然服务器要允许你上传文件才行。如图5。  
   
   
  --------------------------------------------------------------------------------  
   
  图   5   SEND命令发送文件.  
   
  ftp>   send  
  (local-file)   myfile.zip  
  (remote-file)   myfile.zip  
  200   PORT   command   successful.  
  150   Opening   BINARY   mode   data   connection   for   myfile.zip.  
  226   Transfer   complete.  
  3018   bytes   sent   in   0.06   seconds   (50.30   Kbytes/sec)  
  支持命令  
  你可以使用HELP命令获得你的ftp程序支持的命令列表,如图6。  
   
   
  --------------------------------------------------------------------------------  
   
  图   6   Help命令  
   
  ftp>help  
  Commands   may   be   abbreviated.     Commands   are:  
   
  !                         delete                   literal   prompt           send  
  ?                         debug                     ls             put                 status  
  append               dir                         mdelete   pwd                 trace  
  ascii                 disconnect           mdir         quit               type  
  bell                   get                         mget         quote             user  
  binary               glob                       mkdir       recv               verbose  
  bye                     hash                       mls           remotehelp  
  cd                       help                       mput         rename  
  close                 lcd                         open         rmdir  
  ftp>  
   
  结束会话  
  在FTP提示符输入BYE可以结束会话。  
   
  ftp>   bye  
  <the   server   disconnects   the   client>  
   
   
  --------------------------------------------------------------------------------  
   
  其它说明  
  你给FTP程序输入的命令和FTP实际传输给FTP服务器的命令有一点不同。例如你输入DIR命令时,实际上FTP程序传给FTP服务器的是LIST命令。以下提到FTP时将指FTP协议,除非另外说明。  
   
  FTP中,端口21(控制连接)将用于传Top

6 楼cityeremite(无知无畏)回复于 2002-09-13 11:29:33 得分 0

FTP命令  
  FTP使用一系列简单的命令例如LIST或RETR来完成不同的任务。每一个FTP命令用CR/LF(回车)结束。  
   
   
  服务器反馈  
  在发送FTP命令后,你将收到服务器的回应。回应信息由3位数字加空格加上一段文字信息组成。图7   列出了一些回应信息。完整的描述可以参考RFC   959文档。  
   
   
  --------------------------------------------------------------------------------  
   
  图   7   返回值.  
   
  110   重启动标记回应(Restart   marker   reply).  
          它这样显示:  
          MARK   yyyy   =   mmmm  
          yyyy是用户处理的数据流标记,而mmmm是服务器的相应标记(注意标记和“=”之间的空格).  
  120   服务在nnn分钟内就绪.  
  125   数据连接已经打开,;传输开始.  
  150   文件状态OK;将要打开数据连接.  
  200   命令OK.  
  202   命令未实现,在这个站点是多余的.  
  211   系统状态或系统帮助的回应.  
  212   目录状态.  
  213   文件状态.  
  214   帮助信息.  
  215   NAME系统类型.  
  220   服务对新用户就绪.  
  221   服务关闭控制连接.  
          如果合适的话推出登录.  
  225   数据连接打开,没有数据在传输.  
  226   关闭数据连接.  
          需要的文件操作完成。.  
  227   进入Passive模式(h1,h2,h3,h4,p1,p2).  
  230   用户登入,已处理.  
  250   文件操作动作OK,完成.  
  257   “PATHNAME”已经创建.  
  331   用户名OK,需要密码.  
  332   需要登录帐号.  
  350   需要进行的文件操作延迟,进一步的信息.  
  421   服务不可用,关闭控制连接.  
          当服务必须关闭时,这个回复可能适用任何目录.  
  425   无法打开数据连接.  
  426   连接关闭;传输异常中止.  
  450   需要进行的文件操作没有被接受.  
          文件不可用   (例如,文件忙).  
  451   操作中止;处理时发生本地错误.  
  452   操作未接受.  
          系统存储空间不足.  
  500   语法错误,无法识别命令.  
          可能包括命令太长等错误.  
  501   参数语法错误.  
  502   命令未实现.  
  503   命令顺序错误.  
  504   对于该参数命令未实现.  
  530   未登录.  
  532   存储文件需要帐号.  
  550   需要的操作未被接受.  
          文件不可用   (例如,文件未找到).  
  551   需要的操作异常中止;页类型未知.  
  552   需要的操作异常中止.  
          超过了存储分配空间   (对于当前目录或数据集).  
  553   需要的操作未被接受.  
          文件名不被允许.  
   
   
  --------------------------------------------------------------------------------  
   
  返回值类别  
  每一位返回值数字具有特别的含义。第一位数字有5个取值:   1   表示一个肯定的,初步的回答(这个命令被接受,并且这是其它服务器肯定回答的第一部分);2   表示一个永久的肯定回答;   3   表示一个中间层次的肯定回答,在这种情况下,服务器正在等待进一步的信息;   4   表示命令未被接受,需要的操作没有出现,担这种情况可能是暂时的;   5   表示绝对的失败。  
   
  第二个数字表示回答的类别:   0   表示语法错误;   1   表示信息内容;   2   表示有关传输链路的信息;   3   指验证或帐号信息;   4   未使用;   5   表示有关文件系统状态的信息。  
   
  第三个数字再对错误具体分类。  
   
  图   8   显示了如何分析FTP回复值的简要回顾,如果要详细的讨论,请参考RFC   959。  
   
   
  --------------------------------------------------------------------------------  
   
  图   8   解释   FTP返回值.  
   
  1xx           肯定的初步的回答  
  2xx           肯定回答  
  3xx           肯定的中间回答  
  4xx           短暂的否定的完成回答  
  5xx           永久的否定的完成回答  
   
  x0x           语法错误  
  x1x           信息  
  x2x           连接  
  x3x           验证和帐号  
  x4x           未规定  
  x5x           文件系统  
   
   
  我这里也有个例程序,不用任何控件,是直接调用wininet.dll里面的函数实现的。给你发过去了,查收Top

7 楼bluesky_wjs(30以后要管程序员!)回复于 2002-09-13 12:12:02 得分 0

我这里有一个ftp的源代码,你要给我mail。  
   
  bluesky_wjs@163.com  
   
   
   
   
   
   
   
   
  ----------------------------------------------  
  我是打工者,我不想一辈子给别人打工!  
  打工者  
  http://www.dagongzhe.net  
  Top

8 楼nik_Amis(...)回复于 2002-09-13 13:47:17 得分 0

upTop

9 楼ketao_78(树欲静而风不止)回复于 2002-09-13 15:34:44 得分 0

我的天,好长啊Top

10 楼tg123(T.G.)回复于 2002-09-13 19:59:50 得分 0

例子  
  tg123@sina.comTop

11 楼griefforme(菠菜鱼汤 #雁过群山云无语#)回复于 2002-09-15 19:16:58 得分 0

http://www14.brinkster.com/weblover/httpDownload.rar  
  Top

12 楼liangfang(良芳&不见亦钟情)回复于 2002-09-15 20:15:54 得分 0

UPTop

13 楼lipanknight(李)回复于 2002-09-16 17:12:12 得分 0

我也想要一份源码  
  lipanknight@163.comTop

相关问题

  • 用vb 实现ftp 上传、下载, 在线等待,谢谢! 50分奉送!!
  • 用VB实现FTP上传、下载
  • 怎样用VB实现用FTP的方式到指定的目录下载和上传文件呢?急,高分相送!!在线等待.
  • 谁有FTP下载的源码?在线等待急
  • VB中如何用dos的ftp命令上传下载文件?
  • VB中的文件上传与下载,在线等待,up有分
  • 谁给我一个VB。NET的教程下载!谢谢了。我在线等待!!!
  • 200分在线等待:怎么能实现FTP自动下载文本文件?
  • Ftp下载
  • 如何用VB从INTERNET上下载文件,http 方式或ftp(30分)

关键词

  • tcp/ip
  • 文件
  • 服务器
  • 连接
  • 远程
  • 主机
  • 用户
  • 数据
  • 二进制
  • ftp

得分解答快速导航

  • 帖主:ICAC2008
  • wind0209
  • cityeremite

相关链接

  • Visual Basic类图书
  • Visual Basic类源码下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
北京创新乐知广告有限公司 版权所有, 京 ICP 证 070598 号
世纪乐知(北京)网络技术有限公司 提供技术支持
Copyright © 2000-2008, CSDN.NET, All Rights Reserved
GongshangLogo