跪求在visual studio2005下用脚本任务vb.net实现上传文件至FTP功能(应用变量)
需要在MicrosoftVisualStudio2005中的脚本任务实现FTP上传功能,因为上传文件是带时间格式的,所以会应用到变量。求大神能给出代码!!!!!谢谢...
需要在Microsoft Visual Studio 2005中的脚本任务实现FTP上传功能,因为上传文件是带时间格式的,所以会应用到变量。求大神能给出代码!!!!!谢谢
展开
1个回答
展开全部
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做不了,需要手动创建数据包欺骗服务器
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询