摘要载入中…    请稍等…












内容载入中…    请稍等…

如长时间看不到内容,请关闭浏览器,重新打开此页!

芯友首页 应用软件 编程开发 网络硬件 资源下载 动漫音乐 精美图库 芯友论坛 视频教程 电脑技术QQ群:72845454
 ★★photoshop学友-史上最强播放器★★
 位置:编程开发>VB>VB网络文章
◎→ 本类最新
MODEM通讯意外处理
CWinInetConnection---一个封装了
基于Win95的VB5串口通信程序
基 于Win95 的VB5 串 口 通 信 程
获得用户网络登录名
发送电子邮件附件
发送电子邮件附件
◎→相关资源
C语言入门视频教程
C#编程WinForm入门视频
Asp.net入门视频教程下载
VC++编程视频教程下载
VB窗体文章
HTML入门教程
VB基础视频教程
VB窗体文章
VB文件文章
VB数据库文章
VB-API文章
VB控制文章
◎→ 热门资源
在程序中打开 Internet 拨号连接
在WindowsNT网络中广播消息
在VB中用Outlook发电子邮件
在VB中使用UDP协议
在VB中实现文件上载
VBScript代码
《 VB中用Multimedia MCI控件开发

在VB中实现文件上传


日期:2008-10-20 17:56:40    来源:互联网
   
 ·在VB中用Outlook发电子邮件 ·在VB中实现文件上载
 ·VB中播放WAV文件 ·XML技术上传文件

在VB中实现文件上传

Visual Basic 作为一个集应用程序开发、测试、查错功能于一 体的集成式开发环境,越来越受到程序员的青睐笔者在开发某数据 库维护系统的过程中,选择了VB5.0作为开发平台,Unix作为服务器端 操作系统,Informix 作为服务器数据库。 
  问题的出现 
  在开发该维护系统的过程中,注意到Informix 数据库的字段 类型CLOB 填入数据时需要函数FILETOCLOB("FILENAME","SERVER") , 其中的"FILENAME"需要指出文件路径和文件名称。然而,在维护过程 中此文件是在客户端执行的,这样就要求即时将文件传输到服务器端 。 
  解决办法 
  1. FTP传输工具 
  我们首先使用FTP传输工具,用VB5.0中SHELL 命令调用DOS批处理 文件来实现传输的需要。 
  Shell调用格式: 
  Shell(pathname[,windowstyle]) 
  例子:Shell("c:\windows\upload.bat") 
  批处理文件upload.bat 的内容: 
  c:\windows\ftp hostname 
  username 
  password 
  send c:\zrh\upload.txt upload.txt 
  bye 
  该命令实现了文件"upload.txt"的传输要求。在使用完毕之后, 再调用命令把该文件删除。 
  例子:Shell("c:\windows\del_up.bat") 
  批处理文件del_up.bat 的内容: 
  c:\windows\ftp hostname 
  username 
  password 
  dele upload.txt 
  bye 
  这样,文件"upload.txt"被删除。 
  但是,另一个问题出现了。由于Shell 函数的运行机制是与其它 程序同步执行,也就是说,当调用Shell 函数的子程序还没有执行完毕 之前,Shell函数后面的语句已经执行。在大批量添加数据的过程中, 就会出现某个记录的文件还没有传到,而下一个插入语句(I nsert)已 经开始调用。这样,ODBC调用就会出现错误。 
  2. INET 控件 
  Internet Transfer控件提供了Internet 上最常使用的两种协议 :HTTP 和FTP。使用HTTP 协议可以连接到WWW服务器上来下载文件;使 用FTP协议则可以登录到FTP 服务器。一般的FTP命令,例如CD、GET 都可以通过Execute 方法实现。 
  下面是一个设置INET控件属性的例子。 
  inet1.URL=ftp://username:password@hostname/document 
  inet1.Protocol=2-icFTP 
  inet1.RemoteHost=hostname 
  inet1.RemotePort=21 
  inet1.Username=username 
  inet1. Password=password 
  执行文件传输: 
  Inet1.Execute "ftp://username:password@hostname", _ 
  "PUT" &local_filename & " UPLOAD1.TXT" 
  right1 = Inet1.StillExecuting 
  Do While right1 
    right1 = Inet1.StillExecuting 
    DoEvents 
  Loop 
  这样便实现了文件的上载。 
  *SINET 控件的优点 
  INET控件与Shell()函数的不同之处在于INET控件通过调用语句 
  right1 = Inet1.StillExecuting 
  Do While right1 
    right1 = Inet1.StillExecuting 
    DoEvents 
  Loop来控制语句执行的顺序。在文件传输工作未完成之前,程序 不会执行其它语句,自然也就不会出现调用Shell 函数所出现的问题 。变量right1用来测试inet1 的执行状态,如果进程中仍在进行文件 传输的工作,则调用过程DoEvents给系统空闲时间来做文件传输工作, 这样便成功地执行了文件上载的功能。该文件使用完毕之后将被删除 。 
  Inet1.Execute "ftp://informix:informix@rd", _ 
  "DELETE UPLOAD1.TXT" 
  right1 = Inet1.StillExecuting 
  Do While right1 
  right1 = Inet1.StillExecuting 
  DoEvents 
  Loop 
  将上载的文件删除是为了避免占用服务器端磁盘空间。 
  *S利用StateChanged事件提示信息 
  服务器在执行inet1.execute 的同时也激活了Inet1_StateChang ed事件,进程可以根据捕获到的状态进行动作。 
  object_StateChanged(ByVal State As Integer) 
  State:整数类型Integer 
  下面是状态的说明。 
  常数值   描述icNone 
  0      未报告状态icHostResolvingHost 
  1      控件正在寻找指定主机的IP地址icHostResolved 
  2      控件已成功找到指定主机的IP地址icConnecting 
  3      控件正在与指定主机进行连接icConnected 
  4      控件已成功与指定主机连接icRequesting 
  5      控件正在向主机发出请求icRequestSent 
  6      控件已成功向主机发出请求icReceivingResponse 
  7      控件正在从主机接收反馈信息icResponseReceived 
  8      控件已成功从主机接受反馈信息icDisconnecting 
  9      控件正在与主机断开icDisconnected 
  10     控件已与主机断开icError 
  11     在与主机通信的过程中发生了错误icResponseComp leted 
  12     请求结束且数据已经接收到 
  下面是一个例子。 
  Private Sub Inet1_StateChanged(ByVal State As Integer) 
  ' Retrieve server response using the GetChunk 
  ' method when State = 12. This example assumes the 
  ' data is text. 
  Select Case State 
  ' ... Other cases not shown. 
  Case icResponseReceived ' 12 
  Dim vtData As Variant ' Data variable. 
  Dim strData As String: strData = "" 
  Dim bDone As Boolean: bDone = False 
  ' Get first chunk. 
  vtData = Inet1.GetChunk(1024, icString) 
  Do While Not bDone 
  strData = Data & vtData 
  ' Get next chunk. 
  vtData = Inet1.GetChunk(1024, icString) 
  If Len(vtData) = 0 Then 
    bDone = True 
  End If 
  Loop 
  txtData.Text = strData 
  End Select 
  End Sub 


 [1]

在VB中使用UDP协议

Visual Basic 5.0中实现视频画中画

播放声音文件

纯ASP上传图像文件到数据库的最佳例子

--->BitComet 0.87┊基于BitTorrent协议高效P2P文件分享┊苦菜花去广告优化绿色版
--->AlbumUp V0.39┊综合相册批量上传程序、支持网易163相册┊简体中文绿色免费版
--->BitComet 0.87┊基于BitTorrent协议高效P2P文件分享┊苦菜花去广告优化绿色版
--->Web Downloader V1.0.8.00┊可处理所有的因特网下载文件任务┊英文绿色免费版
--->GrabFile V3.9 Final┊强大可设置筛选图象文件下载工具┊简体中文绿色特别版
Tags:  VB 实现 文件 上传

芯友网版权所有 1999-2006 | 著作权与商标声明 | 法律声明 | 服务条款 | 隐私声明 | 联系我们