当前位置:首页 » 文件传输 » vbftp
扩展阅读
webinf下怎么引入js 2023-08-31 21:54:13
堡垒机怎么打开web 2023-08-31 21:54:11

vbftp

发布时间: 2022-02-05 09:42:28

⑴ vb如何上传文件到指定ftp

最简单的方法是用ftp批处理,代码如下
open app.path & "\ftpcmd.ftp" for output as #1 '创建一个ftp命令文件
print #1, "open " & "IP" '打开ftp服务器
print #1, "user " & "用户名"
print #1, "pass " & "密码"

print #1, "lcd " & "本地文件路径" '指定本地文件所在目录

print #1, "put " & "文件名"
close #1 'frp命令文件写完了
shell "ftp -n -s:" & app.path & "\ftpcmd.ftp" '调用系统ftp,并执行上面写的ftpcmd.ftp

⑵ vb ftp上传

Dim uploadedfile As String
(或使用控件Text 名字:uploadedfile)
Inet1.Execute "ftp://192.168.1.17", "PUT " & filestr & " " & uploadedfile

⑶ VB 如何获取FTP上的文件

要用到inet控件。public strData as string
'这段可以返回服务器中的第一级目录名,保存在strData中, 如有多个文件夹名每个文件夹名会以空格分开。读取时判段一下。
Inet1.Execute Inet1.URL, "dir """ & dirName & """"
Do
DoEvents
Loop While Inet1.StillExecuting = True
msgbox strData
'这段是进入目录中,要想获得服务器中所有的文件夹名,就可以用递规的办法来获得。
Inet1.Execute Inet1.URL, "cd """ & dirName & """"
Do
DoEvents
Loop While Inet1.StillExecuting = True
Private Sub Inet1_StateChanged(ByVal State As Integer)
Select Case State
Case 1

StatusBar1.Panels.Item(1).Text = "该控件正在查询所指定的主机的 IP 地址"

Case 2

StatusBar1.Panels.Item(1).Text = "该控件已成功地找到所指定的主机的 IP 地址"

Case 3

StatusBar1.Panels.Item(1).Text = "该控件正在与主机连接"

Case 4

StatusBar1.Panels.Item(1).Text = "该控件已与主机连接成功"

Case 5

StatusBar1.Panels.Item(1).Text = "该控件正在向主机发送请求"

Case 6

StatusBar1.Panels.Item(1).Text = "该控件发送请求已成功"

Case 7

StatusBar1.Panels.Item(1).Text = "该控件正在接收主机的响应"

Case 8

StatusBar1.Panels.Item(1).Text = "该控件已成功地接收到主机的响应"

Case 9

StatusBar1.Panels.Item(1).Text = "该控件正在解除与主机的连接"

Case 10

StatusBar1.Panels.Item(1).Text = "该控件已成功地与主机解除了连接"

Case 11
MsgBox "与主机通讯时出现了错误", vbInformation, "个人资料"
Case 12
Dim vtData As Variant
Dim bDone As Boolean
bDone = False
'取得第一个块。
vtData = Inet1.GetChunk(1024, icString)
DoEvents
Do While Not bDone
strData = strData & vtData
'取得下一个块。
vtData = Inet1.GetChunk(1024, icString)
DoEvents
If Len(vtData) = 0 Then
bDone = True
End If
Loop
StatusBar1.Panels.Item(1).Text = "该请求已经完成,并且所有数据均已接收到"
Case Else
StatusBar1.Panels.Item(1).Text = Inet1.ResponseCode & ": " & Inet1.ResponseInfo
End Select
End Sub
关于inet控件的祥细用法可以看msdn中的帮助。

⑷ VB FTP的运用

对于FTP,你可以使用Execute方法执行FTP命令SIZE获得文件大小。然后在StateChanged事件中可以获得返回的文件大小。
Private Sub Command1_Click()
Inet1.Execute "ftp://127.0.0.1", "SIZE 1.gif"
End Sub

Private Sub Inet1_StateChanged(ByVal State As Integer)
'State = 12 时,用 GetChunk 方法检索服务器的响应。

Dim vtData As Variant ' Data variable.
Select Case State
'...没有列举其它情况。
Case icError '11
'出现错误时,返回 ResponseCode 和 ResponseInfo。
vtData = Inet1.ResponseCode & ":" & _
Inet1.ResponseInfo
Case icResponseCompleted ' 12

Dim strData As String
Dim bDone As Boolean: bDone = False

'取得第一个块。
vtData = Inet1.GetChunk(1024, icString)
DoEvents

Do While Not bDone
strData = strData & vtData
'取得下一个块。
vtData = Inet1.GetChunk(1024, icString)
DoEvents

If Len(vtData) = 0 Then
bDone = True
End If
Loop
MsgBox strData
End Select

End Sub

对于HTTP下载,你可以用GetHeader(Content-length)来获得文件大小。但不是所有HTTP下载时都能获得文件长度,特别是通过代理服务器下载文件时。如:
Private Sub Form_Load()
Inet1.Execute "http://askpro.yeah.net/"
End Sub

Private Sub Inet1_StateChanged(ByVal State As Integer)
If State = icResponseReceived Then
MsgBox "File size is " & Inet1.GetHeader("Content-Length")
End If
End Sub

⑸ 急!用VB代码实现FTP的上传和下载(高分)

要实现在这个代码太多,在这里发有点不太现实,VB 实现 FTP 用 WinSock 控件或API。
做该类程序主要是握手控制,即返回值的处理并做相应传输,另外就是了解每个 FTP 命令的作用,这样做个 FTP 服务端或客户端都不是什么难事。

⑹ VB与FTP编程

建议楼主用winsock连接FTP服务器,发送FTP命令来实现交互,另外说明下,目录的获取与文件的传输是另开端口进行的,以下是命令表
ftp协议命令字(转)

命令 描述
ABOR 中断数据连接程序
ACCT <account> 系统特权帐号
ALLO <bytes> 为服务器上的文件存储器分配字节
APPE <filename> 添加文件到服务器同名文件
CDUP <dir path> 改变服务器上的父目录
CWD <dir path> 改变服务器上的工作目录
DELE <filename> 删除服务器上的指定文件
HELP <command> 返回指定命令信息
LIST <name> 如果是文件名列出文件信息,如果是目录则列出文件列表
MODE <mode> 传输模式(S=流模式,B=块模式,C=压缩模式)
MKD <directory> 在服务器上建立指定目录
NLST <directory> 列出指定目录内容
NOOP 无动作,除了来自服务器上的承认
PASS <password> 系统登录密码
PASV 请求服务器等待数据连接
PORT <address> IP 地址和两字节的端口 ID
PWD 显示当前工作目录
QUIT 从 FTP 服务器上退出登录
REIN 重新初始化登录状态连接
REST <offset> 由特定偏移量重启文件传递
RETR <filename> 从服务器上找回(复制)文件
RMD <directory> 在服务器上删除指定目录
RNFR <old path> 对旧路径重命名
RNTO <new path> 对新路径重命名
SITE <params> 由服务器提供的站点特殊参数
SMNT <pathname> 挂载指定文件结构
STAT <directory> 在当前程序或目录上返回信息
STOR <filename> 储存(复制)文件到服务器上
STOU <filename> 储存文件到服务器名称上
STRU <type> 数据结构(F=文件,R=记录,P=页面)
SYST 返回服务器使用的操作系统
TYPE <data type> 数据类型(A=ASCII,E=EBCDIC,I=binary)
USER <username>> 系统登录的用户名

标准 FTP 信息如下:

响应代码 解释说明
110 新文件指示器上的重启标记
120 服务器准备就绪的时间(分钟数)
125 打开数据连接,开始传输
150 打开连接
200 成功
202 命令没有执行
211 系统状态回复
212 目录状态回复
213 文件状态回复
214 帮助信息回复
215 系统类型回复
220 服务就绪
221 退出网络
225 打开数据连接
226 结束数据连接
227 进入被动模式(IP 地址、ID 端口)
230 登录因特网
250 文件行为完成
257 路径名建立
331 要求密码
332 要求帐号
350 文件行为暂停
421 服务关闭
425 无法打开数据连接
426 结束连接
450 文件不可用
451 遇到本地错误
452 磁盘空间不足
500 无效命令
501 错误参数
502 命令没有执行
503 错误指令序列
504 无效命令参数
530 未登录网络
532 存储文件需要帐号
550 文件不可用
551 不知道的页类型
552 超过存储分配
553 文件名不允许

⑺ VB 上传文件到Ftp

传送文件,用 Inet 控件

Components -> Microsoft Internet Transfer Control 6.0

Private Sub FTPTxtFile()
Dim TRANSFER_STRING As String, PutString As String
Dim lSizeOfFile As Integer
Dim sLocalDir As String
Dim ftp As String

'

sLocalDir = GetSetting(gsTitle, "Settings", "LocalDir", "c:\")
If Right$(sLocalDir, 1) <> "\" Then sLocalDir = sLocalDir & "\"

'Set up FTP Connection
Inet1.URL = "ftp://" & sEdiAddr
Inet1.UserName = sEdiUser
Inet1.Password = sEdiPass
ftp = sEdiPath & sFTPFilename
Call check_EDI_execute

Inet1.Execute , "dir *.txt"
Call check_EDI_execute

'Transfer file
TRANSFER_STRING = "PUT " & sTxtFile & " " & ftp
'Inet1.Execute , TRANSFER_STRING
'Call check_EDI_execute

Inet1.Execute , "CLOSE"
Call check_EDI_execute

End Sub
Private Sub check_EDI_execute()
On Error GoTo FTPError1
While Inet1.StillExecuting
DoEvents
Wend
Exit Sub

FTPError1:
MsgBox "FTP Error. Error - " & Str(Err) & ", " & Error, vbExclamation, gsTitle
End Sub

⑻ vb中ftp操作的代码

这个吗

⑼ VB 上传ftp

Private Sub Command1_Click()
Inet1.URL = "ftp://210.83.61.42/"
Inet1.Password = "111"
Inet1.UserName = "111"
Inet1.OpenURL
Inet1.Execute , "put d:\a.txt /d:/ftp/wwwroot/a.txt" 'put方法,d:\a.txt是本地路径
Inet1.Execute , "QUIT"
End Sub

⑽ VB中FtpPutFile的用法

Inet1.Protocol = icFTP
Inet1.RemoteHost = "10.10.10.10" '服务器地址
Inet1.RemotePort = 21 'FTP端口
Inet1.UserName = "abc" '用户名
Inet1.Password = "123456" '密码
Inet1.Execute "", "PUT C:1.txt"
ri = Inet1.StillExecuting
Do While ri
ri = Inet1.StillExecuting
DoEvents
Loop