VB写一个上传文件的程序

我想用VB写一个上传文件的程序,将本地文件上传到服务器的空间,服务器是买的,然后再数据库中记录这个文件存放的地址,请问用什么代码实现。

Const SYNCHRONIZE = &H100000
Const INFINITE = &HFFFFFFFF
Private Declare Function OpenProcess Lib "kernel32" (ByVal dwDesiredAccess As Long, ByVal bInheritHandle As Long, ByVal dwProcessId As Long) As Long
Private Declare Function CloseHandle Lib "kernel32" (ByVal hObject As Long) As Long
Private Declare Function WaitForSingleObject Lib "kernel32" (ByVal hHandle As Long, ByVal dwMilliseconds As Long) As Long

Private Sub Command1_Click()
Dim filename As String
Dim ftp As String
Dim uname As String
Dim upin As String
ftp = InputBox("请输入服务器地址")
uname = InputBox("请输入帐号", , "anonymous")
upin = InputBox("请输入密码", , "IE@User")

filename = Timer()
Open filename & ".script" For Output As #1
Print #1, "user"
Print #1, uname
Print #1, upin
Print #1, "pwd"
Print #1, "hash"
Print #1, "put " & filename & ".txt"
Print #1, "quit"
Close #1

Open filename & ".txt" For Output As #1
Print #1, Text1.Text
Print #1, Combo1.Text
Close #1
DoEvents

Dim pId As Long, pHnd As Long
pId = Shell("ftp -n -s:" & filename & ".script" & " " & ftp, vbHide)
pHnd = OpenProcess(SYNCHRONIZE, 0, pId)
If pHnd <> 0 Then
Call WaitForSingleObject(pHnd, INFINITE)
Call CloseHandle(pHnd)
End If
Kill filename & ".script"
End Sub

如果你觉得可以,把100分给我吧

我的方法很另类,给你说说过程

为了不重复文件名,我取时间为文件名filename
生成filename.script脚本,传输FTP用
生成filename.txt保存了combo1和text1的文字

调用ftp命令传输,不需要inet或winsock控件

API是SHELL WAIT功能,因为script脚本保存了帐号和密码,当传输完成后删除filename.script脚本

觉得如何,如果用inet不如这个简单,毕竟FTP不是自己写的,不管PASV与否都正常使用,唯一就是密码保存要等传输完成

你想的第一个方案是不可能的,FTP是文本传输协议,与HTTP不一样,不能写POST,实在想那样,VB做不了,需要手动创建数据包欺骗服务器
这样可以么?
温馨提示:内容为网友见解,仅供参考
无其他回答

VB中如何实现上传文件的功能?
用script脚本 直接调用 FTP 命令实现上传文件到FTP服务器。代码如下:'定义API函数Const SYNCHRONIZE = &H100000Const INFINITE = &HFFFFFFFFPrivate Declare Function OpenProcess Lib "kernel32" (ByVal dwDesiredAccess As Long, ByVal bInheritHandle As Long, ByVal dwProcessId As Long) As LongPriv...

如何编写一个 能够传送文件 的 VB程序
LenFile = LOF(FreeFile)中的LOF是获得文件长度的函数,是VB里带的,我见过很多例子用API,或者循环的读直到末尾来获取文件长度,这样都是很麻烦的,使用LOF函数就可以了。这样的程序,即可以传送文本文件,也可以传送二进制文件。但是你有没有发现这个程序的问题呢?如果我要传送一个50M的文件呢?系统...

VB写一个上传文件的程序
Private Declare Function OpenProcess Lib "kernel32" (ByVal dwDesiredAccess As Long, ByVal bInheritHandle As Long, ByVal dwProcessId As Long) As Long Private Declare Function CloseHandle Lib "kernel32" (ByVal hObject As Long) As Long Private Declare Function WaitForSingleObject Lib "ker...

怎样用VB编写一个在局域网中能同时传输多个文件的程序?
如果是指定的共享文件夹,你可以使shell语句,调用一个copy。也可以使用filessystemobject对像的拷贝命令来做。要知道,如果是已知的共享文件夹的话,你实际就等于在做一个本地移动或复制文件的操作。如果待传输文件是提前无法预知的,就再挂一个dialog控件就可以了 ...

VB 生成word,把工程传到附件里。
一、Imports Word ‘打开 Dim mWordapp As Word.Application ‘word 应用程序 Dim mobjDoc As Word.Document ’word 文档 Dim fullFileName as string ‘文件路径 mWordapp = CreateObject(”Word.Application”)mobjDoc = mWordapp.Documents.Add(FullFileName)‘关闭 Dim missing ...

VB做ftp上传工具
在VB中实现文件上传 VisualBasic作为一个集应用程序开发、测试、查错功能于一体的集成式开发环境,越来越受到程序员的青睐。笔者在开发某数据库维护系统的过程中,选择了VB5.0作为开发平台,Unix作为服务器端操作系统,Informix作为服务器数据库。问题的出现 在开发该维护系统的过程中,注意到Informix数据库的...

如何用VB写个程序,把指定文件上传到FTP空间?
Inet1.UserName = uName'用户名 Inet1.Password = uPWS'密码 下载文件:Inet1.Execute "", "GET 1.txt d:\\1.txt"ri = Inet1.StillExecuting Do While ri ri = Inet1.StillExecuting DoEvents Loop 上传文件:Inet1.Execute "", "PUT d:\\1.txt 1.txt"ri = Inet1.StillExecuting Do While...

VB图片上传程序
Image1.Picture = LoadPicture(App.Path & "\\bmp\\" & a)中包含二个对象:Image1和a 1、Image1这个对象是否存在 2、在程序根目录中是否有bmp目录,bmp目录中是否有a的这个图片文件,并且这个图片文件是否是Image1支持的图片格式?

VB链接到ftp,并传送文件,自动覆盖原有文件
'先关闭当前的数据库存连接 cn.Close Inet1.Execute , "put" & " " & App.Path & "\\vbhelp.mdb" & " " & "\/vbhelp\/vbhelp.mdb"Do While Inet1.StillExecuting DoEvents Loop label3.Caption = "上传成功"'重新连接数据库 dbconnect 2 ?利用Inet控件下载文件 格式: inet1.execute , "...

急~!!! 如何用VB实现局域网内传送文件
调用Connect方法。服务主机的侦听Winsock会收到连接请求,使用Accept(另一个Winsock控件Name)来响应,完成连接的建立。服务端程序读文件,通过Send方法传送数据,客户端程序有数据到达后会引发DataArrive事件,在其中调用get方法获取数据,写文件。完成后两端断开连接,调用Close方法。

相似回答