当前位置:首页 » 文件管理 » vbhttp上传文件

vbhttp上传文件

发布时间: 2022-09-13 06:49:20

⑴ vb上传文件的实现....

数据的上传就是将档案文件存储到数据表中。在数据上传时,因情况不同一般有两种方式,即单一上传和批量上传,前者指一次上传一个文件(在数据表中增加一条记录),后者指一次将一个文件夹中的所有文件上传到数据库。两者在实质上是统一的,批量上传时,只需用一个循环语句就可。以下介绍单一上传的过程。 1、打开数据表 通过以下语句打开数据表: dim office_rst As New ADODB.Recordset adocon.CursorLocation = adUseClient office_rst.Open "office", adocon, adOpenDynamic, adLockOptimistic, adCmdTable 2、添加新记录并上传文件 假定通过一些操作已经获得了要上传的文件路径和名称(例如,可利用CommomDialog控件获得),保存在string型变量filePath中。上传的关键语句如下: dim adofld As ADODB.Field, DataArr() As Byte, filelen As Long, file_num As Long office_rst.AddNew Set adofld = office_rst("office") adorst("filename").Value = filePath file_num = FreeFile '返回一个 Integer,代表下一个可供Open语句使用的文件号 Open filePath For Binary Access Read As file_num '打开磁盘文件 filelen = LOF(file_num) '求文件长度 ReDim DataArr(filelen) '根据文件长度定义动态数组大小 Get sourcefile, , DataArr '将一个已打开的磁盘文件读入数组变量之中 adofld.AppendChunk DataArr() '将数组内容存入image型字段中 Close file_num '关闭磁盘文件 adorst.update 其中的filename为表office中的一个string型字段,用于存储档案文件的名称。

⑵ VB6用Microsoft.XMLHTTP 上传文件(文本,二进制)和FORM 字段

要看你的java业务层是什么写的,如果是一般的jsp或是servlet,就可以用提取C#语言操纵IE方法提取从服务器请求回来的html页面对html标记取内容,如果是struts1或者是struts2作为业务层的话,就没办法取得

⑶ vb6如何实现上传http站点呢

1.使用socket方式,通过tcp连接web服务器的80端口,发送http协议命令.来实现传输.但太底层.都需要自己来实现.不好,
2.使用xmlhttp控件.vb使用他,快速简单,可以选择get/post方式
下面是使用的封装函数.
Function xmlread(url) As String ''用xml读网页文件
Set http = CreateObject("Microsoft.XMLHTTP")
http.open "post", url, False
http.setRequestHeader "Content-Type", "text/XML"
http.setRequestHeader "Content-Type", "gb2312"
http.setRequestHeader "Content-Type", "application/x-www-form-urlencoded"
http.send
If http.readyState = 4 Then
xmlread = Trim(bytes2BSTR(http.responseBody))
Else: xmlread = "error"
End If
Set http = Nothing
End Function
Function xmlpost(url, Form) As String '''用xml传网页表单数据
Set http1 = CreateObject("Microsoft.XMLHTTP")
http1.open "post", url, False
http1.setRequestHeader "Content-Type", "text/XML"
http1.setRequestHeader "Content-Type", "gb2312"
http1.setRequestHeader "Content-Type", "application/x-www-form-urlencoded"
http1.send Form
If http1.readyState <> 4 Then
xmlpost = "error"
End If
Set http1 = Nothing
End Function

⑷ VB中如何实现上传文件的功能

用script脚本 直接调用ftp 命令实现上传文件到FTP服务器。

代码如下:

'定义API函数
ConstSYNCHRONIZE=&H100000
ConstINFINITE=&HFFFFFFFF
"kernel32"(ByValdwDesiredAccessAsLong,ByValbInheritHandleAsLong,ByValdwProcessIdAsLong)AsLong
"kernel32"(ByValhObjectAsLong)AsLong
"kernel32"(ByValhHandleAsLong,ByValdwMillisecondsAsLong)AsLong

PrivateSubCommand1_Click()
DimfilenameAsString
DimftpAsString
DimunameAsString
DimupinAsString
ftp=InputBox("请输入服务器地址")
uname=InputBox("请输入帐号",,"anonymous")
upin=InputBox("请输入密码",,"IE@User")

filename=Timer()'取时间为文件名filename
Openfilename&".script"ForOutputAs#1'生成filename.script脚本,传输FTP用
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

Openfilename&".txt"ForOutputAs#1'生成的filename.txt保存了combo1和text1的文字
Print#1,Text1.Text
Print#1,Combo1.Text
Close#1
DoEvents
'调用ftp命令传输,不需要inet或winsock控件
DimpIdAsLong,pHndAsLong
pId=Shell("ftp-n-s:"&filename&".script"&""&ftp,vbHide)
pHnd=OpenProcess(SYNCHRONIZE,0,pId)
IfpHnd<>0Then
CallWaitForSingleObject(pHnd,INFINITE)
CallCloseHandle(pHnd)
EndIf
Killfilename&".script"'因为script脚本保存了帐号和密码,当传输完成后删除filename.script脚本
EndSub

⑸ VB怎样上传图片到服务器

<%
'****************************************************
'这是类文件,用来保存有关文件上传的类
'****************************************************

'----------------------------------------------------------------------------------
Class jjUpload
'定义几个私有变量,在类内部都可以使用
Private formData,formSize,bncrlf,divider

'下面是初始化类的方法
Private Sub Class_Initialize()
formsize=Request.TotalBytes '获取传上来的二进制数据的大小
formdata=Request.BinaryRead(formsize) '获取传上来的二进制数据
bncrlf=ChrB(13) & ChrB(10) '回车换行标记
divider=LeftB(formData,CInt(InstrB(formdata,bncrlf))-1) '分隔符
End Sub

'下面的函数用来返回上传文件对象
Public Function GetFiles(FormName)
Dim objGetFiles
Set objGetFiles=New MyGetFiles
Call objGetFiles.GetProperty(formData,FormName)
Set GetFiles=objGetFiles
End Function

'下面的函数用来返回上传表单对象
Public Function GetForms(FormName)
Dim objGetForms
Set objGetForms=New MyGetForms
Call objGetForms.GetValue(formdata,FormName)
Set GetForms=objGetForms
End Function

End Class
'----------------------------------------------------------------------------------
Class MyGetFiles
'定义几个私有变量
Dim theFilePath,theFileName,theExt,theSize,theMIME,theformData
'定义几个只读属性,用来返回有关信息
Public Property Get FilePath
FilePath=theFilePath
End Property
Public Property Get FileName
FileName=theFileName
End Property
Public Property Get Ext
Ext=theExt
End Property
Public Property Get Size
Size=theSize
End Property
Public Property Get MIME
MIME=theMIME
End Property

'下面是初始化类的方法
Private Sub Class_Initialize()
End Sub

'下面是返回各个类的属性
Public Sub GetProperty(formData,FormName)
Dim bncrlf,divider
bncrlf=ChrB(13) & ChrB(10) '回车换行标记
divider=LeftB(formData,CInt(InstrB(formdata,bncrlf))-1) '分隔符
'下面开始查找该FormName对应的内容,strTemp变量用来保存一个二进制字符串
'dataStart为开始位置,dataEnd为结束位置,dataLen为要取信息的长度,temp为临时使用。
Dim strTemp,dataStart,dataEnd,dataLen,temp,intFlag
'因为发生引号嵌套,这里的内层引号用""代替。
strTemp=StringToBinary("Content-Disposition: form-data; name=""" & FormName & """; filename=""")
'在formData中查找二进制字符串strTemp,如果找到了就继续处理,如果找不到返回错误信息。
intFlag=InstrB(formData,Divider & bncrlf & strTemp)
Dim arrayTemp()
If intFlag>0 Then
'重定义数组长度
Redim arrayTemp(4)
'首先返回文件在客户端的路径
dataStart=intFlag+LenB(Divider & bncrlf & strTemp) '定位到第1个字符
dataend=InstrB(datastart,formdata,bncrlf)-2 '定位到最后1个字符
dataLen=dataend-datastart+1 '返回要取信息的长度
theFilePath=BinaryToString(MidB(formdata,datastart,datalen)) '返回文件路径
'返回文件的名称,其实只要从客户端路径中分析出文件名称即可
theFileName=Mid(theFilePath,InstrRev(theFilePath,"\")+1)
'返回文件的扩展名,其实只要从文件名称中分析出文件扩展名即可
theExt=Mid(theFileName,InstrRev(theFileName,".")+1)
'下面获取文件的MIME类型
temp=dataend '记住当前位置
datastart=temp+18 '定位到第1个字符
dataend=InstrB(datastart,formdata,bncrlf & bncrlf)-1 '定位到最后1个字符
dataLen=dataend-datastart+1 '返回要取信息的长度
theMIME=BinaryToString(MidB(formdata,datastart,datalen)) '返回MIME类型
'下面获取文件大小
temp=dataend
datastart=dataend+5 '定位到第1个字符
dataend=InstrB(datastart,formdata,divider)-3 '定位到最后1个字符
theSize=dataend-datastart+1 '返回文件大小
End If
'将formData保存在本类的私有变量中,以备使用
theformData=formData
End Sub
'----------------------------------------------------------------------------------
'下面定义一个保存文件的方法
Public Function SaveToFile(FormName,SaveFilePath,OverWriteFlag)
Dim bncrlf,divider
bncrlf=ChrB(13) & ChrB(10) '回车换行标记
divider=LeftB(theformData,CInt(InstrB(theformdata,bncrlf))-1) '分隔符
'下面开始查找该FormName对应的内容,strTemp变量用来保存一个二进制字符串
'dataStart为开始位置,dataEnd为结束位置,dataLen为要取信息的长度,temp为临时使用。
Dim strTemp,dataStart,dataEnd,dataLen,temp,intFlag,filepath,filename
'因为发生引号嵌套,这里的内层引号用""代替。
strTemp=StringToBinary("Content-Disposition: form-data; name=""" & FormName & """; filename=""")
'在formData中查找二进制字符串strTemp,如果找到了就继续处理,如果找不到返回错误信息。
intFlag=InstrB(theformData,Divider & bncrlf & strTemp)
Dim arrayTemp()
If intFlag>0 Then
'因为后面要用到文件的名字,所以首先返回文件的名字
dataStart=intFlag+LenB(Divider & bncrlf & strTemp) '定位到第1个字符
dataend=InstrB(datastart,theformData,bncrlf)-2 '定位到最后1个字符
dataLen=dataend-datastart+1 '返回要取信息的长度
filepath=BinaryToString(MidB(theformData,datastart,datalen)) '返回文件路径
filename=Mid(filepath,InstrRev(filepath,"\")+1)
'从当前位置找到两个回车换行符,也就是文件内容开头的地方
dataStart=InstrB(intFlag,theformData,bncrlf & bncrlf)+4 '定位到文件内容所在的第1个字符
dataEnd=InstrB(datastart,theformData,divider)-3 '定位到文件内容的最后一个字符
dataLen=dataend-datastart+1 '返回文件内容的长度
If dataLen<=0 Then
SaveToFile=3
Exit Function
End If

'下面建立了两个Stream对象,objStream1将整个theformData读取到对象中,然后将其中的文件内容部分复制到
'objStream2对象中,然后再利用SaveToFile方法保存到指定文件夹下。
Dim objStream1
Set objStream1=Server.CreateObject("Adodb.Stream")
objStream1.Type = 1 '设置二进制方式
objStream1.Open '打开对象
objStream1.Write theformData '写出文件内容到对象中
Dim objStream2
Set objStream2=Server.CreateObject("Adodb.Stream")
objStream2.Type = 1 '设置二进制方式
objStream2.Open '打开对象
objStream1.Position=datastart-1 '设定起始位置,这里索引从0开始,所以减1
objStream1.CopyTo objStream2,dataLen '写出文件内容到对象中
'如果允许覆盖,才覆盖,否则给出提示信息,提示客户更改名字
If OverWriteFlag=True Then
objStream2.SaveToFile SaveFilePath & "\" & filename,2 '保存文件,2表示可以覆盖
Else
Set fso=Server.CreateObject("Scripting.FileSystemObject")
IF fso.FileExists(SaveFilePath & "\" & filename)=True Then
SaveToFile=2 '返回函数值,1表示已经存在同名文件
Exit Function
Else
objStream2.SaveToFile SaveFilePath & "\" & filename,1 '1表示不可以覆盖
End If
End IF

'关闭对象
objStream1.Close
Set objStream1=Nothing
objStream2.Close
Set objStream2=Nothing
SaveToFile=1 '下面返回函数值,0表示正常
Else
SaveToFile=0 '下面返回函数值,2表示找不到,发生错误
End If
End Function

'下面定义保存文件到数据库的方法
Public Function SaveToDataBase(FormName,strConn,strSql)
Dim bncrlf,divider
bncrlf=ChrB(13) & ChrB(10) '回车换行标记
divider=LeftB(theformData,CInt(InstrB(theformdata,bncrlf))-1) '分隔符
'下面开始查找该FormName对应的内容,strTemp变量用来保存一个二进制字符串
'dataStart为开始位置,dataEnd为结束位置,dataLen为要取信息的长度,temp为临时使用。
Dim strTemp,dataStart,dataEnd,dataLen,temp,intFlag,fileimage
'因为发生引号嵌套,这里的内层引号用""代替。
strTemp=StringToBinary("Content-Disposition: form-data; name=""" & FormName & """; filename=""")
'在formData中查找二进制字符串strTemp,如果找到了就继续处理,如果找不到返回错误信息。
intFlag=InstrB(theformData,Divider & bncrlf & strTemp)
Dim arrayTemp()
If intFlag>0 Then
'从当前位置找到两个回车换行符,也就是文件内容开头的地方
dataStart=InstrB(intFlag,theformData,bncrlf & bncrlf)+4 '定位到文件内容所在的第1个字符
dataEnd=InstrB(datastart,theformData,divider)-3 '定位到文件内容的最后一个字符
dataLen=dataend-datastart+1 '返回文件内容的长度
fileimage=MidB(theformData,datastart,datalen) '返回二进制文件内容

If dataLen<=0 Then
SaveToFile=3 '3表示根本没有选择文件
Exit Function
End If

'!!!因为当文件大小为奇数字符时,在往数据库中保存时有一些小问题,会少一个字节,所以这里先给它加一个二进制空格
If dataLen Mod 2 = 1 Then
fileimage=fileimage & Chrb(32)
datalen=datalen+1
End If

'下面将文件保存到数据库中
Dim db,cmd,rs
Set db=Server.CreateObject("ADODB.Connection")
db.Open strConn
Set cmd= Server.CreateObject("ADODB.Command")
cmd.ActiveConnection=db
cmd.CommandText=strSql
'下面建立一个参数对象prm,并将该对象加入到参数集合中,204表示是二进制值
Dim prm
Set prm=cmd.CreateParameter("fileimage",204,1,datalen,fileimage)
cmd.Parameters.Append prm
set rs=cmd.Execute
SaveToDatabase=1 '返回函数值,0表示正常
Else
SaveToDatabase=0 '返回函数值,2表示错误
End If
End Function

'下面是注销该类的方法
Private Sub Class_Terminate()
'theformData=Nothing
End Sub

End Class
'----------------------------------------------------------------------------------
Class MyGetForms
'定义1个私有变量
Dim theValue
'定义几个只读属性,用来返回有关信息
Public Property Get Value
Value=theValue
End Property

'下面是初始化类的方法
Private Sub Class_Initialize()
End Sub

'该方法给属性赋值
Public Sub GetValue(formData,FormName)
Dim bncrlf,divider
bncrlf=ChrB(13) & ChrB(10) '回车换行标记
divider=LeftB(formData,CInt(InstrB(formdata,bncrlf))-1) '分隔符
'下面开始查找该FormName对应的内容,下面会首先定义几个变量,strTemp为一个字符串变量,临时保存二进制字符串
'dataStart为开始位置,dataEnd为结束位置,dataLen为要取信息的长度,temp为临时使用,为了记住当前位置。
Dim strTemp,dataStart,dataEnd,dataLen,temp,intFlag
strTemp=StringToBinary("Content-Disposition: form-data; name=""" & FormName & """")
'在整个二进制字符串中查找下面这一个二进制字符串
intFlag=InstrB(formData,Divider & bncrlf & strTemp & bncrlf & bncrlf)
'如果找到了,就依次返回有关信息,如果找不到,就返回一个错误信息
If intFlag>0 Then
datastart=intFlag+LenB(Divider & bncrlf & strTemp & bncrlf & bncrlf) '定位到第1个字符
dataend=InstrB(datastart,formdata,divider)-3 '定位到最后1个字符
dataLen=dataend-datastart+1 '返回要取信息的长度
theValue=BinaryToString(MidB(formdata,datastart,datalen)) '返回出表单内容信息
Else
theValue=""
End If
End Sub
End Class

'------------------------------------------------------------------------------------------------
'该函数可以将二进制字符串转换成文本字符串
Function BinaryToString(thedata)
'变量strNow表示正在处理的字符,strTemp用来保存已经处理完毕的字符串
'变量flag是一个标志,False表示前一个字符不是中文,True表示前一个字符是中文
Dim strNow,strTemp,flag,I
flag=False
'利用循环依次转换每一个字符
For I=1 To LenB(thedata)
'因为一个中文字符包括两个字节,如果flag=True,表示前一个字符是中文,所以
'要跳过该字符,需要令标志flag=False。否则表示不是中文,就需要将其转换
If flag=True Then
flag=False
Else
'取出当前二进制字符
strNow=MidB(thedata,I,1)
'如果AscB(strNow)>127,表示这是一个中文字符,AscB(tsrNow)<127,表示不是中文字符
If AscB(strNow) > 127 Then
'如果是中文,首先需要把当前字符和下一个字符调换位置,然后用AscW
'返回对应的ASCII码。随之,用Chr函数返回该ASCII码对应的文本
'最后,还要把中文标志设为True
strTemp=strTemp & Chr(AscW(MidB(thedata,I+1,1) & strNow))
flag=True
Else
'这表示是英文,AscB返回对应的ASCII码,Chr返回对应的文本字符
strTemp=strTemp & Chr(AscB(strNow))
End If
End If
Next
BinaryToString=strTemp '返回函数值
End Function

'该函数可以将文本字符串转换成二进制字符串
Function StringToBinary(thedata)
'变量strNow表示正在处理的字符,strTemp用来保存已经处理完毕的字符串
'变量intNow用来表示当前字符的ASCII码
'变量ascLow和ascHigh用来保存中文字符的第1个和第2个字节
Dim strNow,intNow,strTemp,I,binLow,binHigh
'利用循环依次转换每一个字符
For I=1 To Len(thedata)
'取出当前文本字符,并返回ASCII码
strNow=Mid(thedata,I,1)
intNow=Asc(strNow)
'如果Asc(strNow)<0,则表示是中文字符,则需要加上65535返回它的无符号数值
If intNow<0 Then
intNow=intNow+65535
End If
'如果加上65535后ASCII码大于255,则表示是中文,中文是用两个字节表示的,必须分开处理。当然,如果是英文字符就简单了
If intNow>255 Then
'这里binLow返回低字节,binHigh返回高字节其中Hex函数返回一个字符串,表示一个数字的十六进制数
binLow="&H" & Left(Hex(Asc(strNow)),2)
binHigh="&H" & Right(Hex(Asc(strNow)),2)
strTemp=strTemp & ChrB(binLow) & ChrB(binHigh)
Else
'这表示是英文,Asc函数返回ASCII码,ChrB返回对应的二进制字符。
strTemp=strTemp & ChrB(Asc(strNow))
End If
Next
StringToBinary=strTemp '返回函数值
End Function
%>

⑹ 用VB.NET 怎样通过给的HTTP地址上传文件

e As Int32 = 0 To Files.Count - 1
Dim PostedFile As HttpPostedFile = Files(iFile)
Dim FileName, FileExtent As String
FileName = Serverpath & System.IO.Path.GetFileName(PostedFile.FileName)
If System.IO.Path.GetFileName(PostedFile.FileName) <> "" Then

FileName = System.IO.Path.GetFileName(PostedFile.FileName)
Dim Url As String = Me.Label1.Text.Trim & FileName

PostedFile.SaveAs(Serve

⑺ VB编写个程序上传文件到FTP

首先,在VB工具栏中添加部件Microsoft Internet Transfer Control 6.0 ,之后工具箱会多一个Inet的控件。
拖放该控件到窗体上,设置控件中的属性
protocol : 2-icFTP
RemoteHost : 你的FTP服务IP或域名
RemotePort : 你的FTP端口
URL : 你的FTPURL地址
UserName和Password 这两个就不用说了

'窗体中添加一个文本框(text1)和一个按钮(Command1)代码如下:

Private Sub Command1_Click()
Dim isRight As Boolean
Dim filestr As String
filestr = app.path & "\A"
Inet1.Execute "", "PUT " & filestr & " /A"
isRight = Inet1.StillExecuting '获取当前是否仍然在执行命令
Do While isRight
isRight = Inet1.StillExecuting
DoEvents
Loop
filestr = app.path & "\B"
Inet1.Execute "", "PUT " & filestr & " /B"
isRight = Inet1.StillExecuting '获取当前是否仍然在执行命令
Do While isRight
isRight = Inet1.StillExecuting
DoEvents
Loop
filestr = app.path & "\C"
Inet1.Execute "", "PUT " & filestr & " /C"
isRight = Inet1.StillExecuting '获取当前是否仍然在执行命令
Do While isRight
isRight = Inet1.StillExecuting
DoEvents
Loop
filestr = app.path & "\D"
Inet1.Execute "", "PUT " & filestr & " /a/D"
isRight = Inet1.StillExecuting '获取当前是否仍然在执行命令
Do While isRight
isRight = Inet1.StillExecuting
DoEvents
Loop
End Sub
Private Sub Inet1_StateChanged(ByVal State As Integer)
text1.Text = text1.Text + CStr(State)
Select Case State
Case 11
text1.text ="在与主机通信的过程中发生了错误"
Case 12
text1.Text = "上传完成"
End Select
End Sub

⑻ VB 模拟网页上传文件

如果你会用winsock的话就好办了 ,
具体发送步骤:
1,先用网页上传一个文件到你要上传的网站,
2,找个数据截获软件检测 网页 传 文件 到网站 的实际发送数据。
要从网页一打开直到关闭的所有数据。
3,用winsock模拟,一步一步把先前的数据发送给服务器,反复调试。

⑼ C#中怎么调用vb的Inet控件 即Microsoft Internet Transfer Control利用http协议上传一个文件到服务端

C# 上传文件的方式,有N种,都比inet高效,简洁,你怎么会用 inet 呢?

热点内容
scratch编程小游戏跳一跳 发布:2024-10-11 03:50:03 浏览:573
python高手 发布:2024-10-11 03:44:58 浏览:735
文件拖拽上传插件 发布:2024-10-11 03:34:35 浏览:321
安卓邮件账户信息在哪里 发布:2024-10-11 03:33:52 浏览:691
精准扶贫数据库 发布:2024-10-11 03:14:13 浏览:467
我的世界服务器被ban改ip有用吗 发布:2024-10-11 02:32:04 浏览:782
rc4加密及解密 发布:2024-10-11 02:31:30 浏览:4
安卓手机有什么免费音乐软件 发布:2024-10-11 02:17:07 浏览:992
阿里云服务器须知 发布:2024-10-11 02:12:55 浏览:418
androidaaptexe 发布:2024-10-11 01:49:48 浏览:349