VB向服务器上传文件,在VB中实现文件上传

55408b9730e7125906cc98f1d9f6ba91.png

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

2829f2ca24f0d0090cbba57f30759f23.png

在VB中实现文件上传.doc

下载Word文档到电脑,方便收藏和打印[全文共1235字]

编辑推荐:

8b95f2eb3d3f7ce4dc3bf1178c74941e.png

8b95f2eb3d3f7ce4dc3bf1178c74941e.png

8b95f2eb3d3f7ce4dc3bf1178c74941e.png

8b95f2eb3d3f7ce4dc3bf1178c74941e.png

8b95f2eb3d3f7ce4dc3bf1178c74941e.png

下载Word文档

参与评论 您还未登录,请先 登录 后发表或查看评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
©️2022 CSDN 皮肤主题:数字20 设计师:CSDN官方博客 返回首页
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值