當前位置:首頁 » 文件管理 » 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 呢?

熱點內容
lol浙江省伺服器雲主機 發布:2024-10-11 05:07:35 瀏覽:902
安卓抖音沒網路怎麼設置 發布:2024-10-11 05:07:22 瀏覽:857
伺服器ft測試的是什麼 發布:2024-10-11 05:06:50 瀏覽:109
演算法是什 發布:2024-10-11 05:01:46 瀏覽:176
java圖片水印 發布:2024-10-11 04:53:47 瀏覽:483
linux下mfc編譯 發布:2024-10-11 04:43:40 瀏覽:903
phpfor循環語句 發布:2024-10-11 04:32:55 瀏覽:869
什麼是假的伺服器 發布:2024-10-11 04:32:49 瀏覽:102
筆記本電腦配置夠但玩游戲卡怎麼辦 發布:2024-10-11 04:30:55 瀏覽:2
scratch編程小游戲跳一跳 發布:2024-10-11 03:50:03 瀏覽:574