Const?SYNCHRONIZE?=?H100000
成都創(chuàng)新互聯(lián)公司堅(jiān)持“要么做到,要么別承諾”的工作理念,服務(wù)領(lǐng)域包括:成都網(wǎng)站建設(shè)、網(wǎng)站制作、企業(yè)官網(wǎng)、英文網(wǎng)站、手機(jī)端網(wǎng)站、網(wǎng)站推廣等服務(wù),滿(mǎn)足客戶(hù)于互聯(lián)網(wǎng)時(shí)代的荊門(mén)網(wǎng)站設(shè)計(jì)、移動(dòng)媒體設(shè)計(jì)的需求,幫助企業(yè)找到有效的互聯(lián)網(wǎng)解決方案。努力成為您成熟可靠的網(wǎng)絡(luò)建設(shè)合作伙伴!
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("請(qǐng)輸入服務(wù)器地址")
uname?=?InputBox("請(qǐng)輸入帳號(hào)",?,?"anonymous")
upin?=?InputBox("請(qǐng)輸入密碼",?,?"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
如果你覺(jué)得可以,把100分給我吧
我的方法很另類(lèi),給你說(shuō)說(shuō)過(guò)程
為了不重復(fù)文件名,我取時(shí)間為文件名filename
生成filename.script腳本,傳輸FTP用
生成filename.txt保存了combo1和text1的文字
調(diào)用ftp命令傳輸,不需要inet或winsock控件
API是SHELL WAIT功能,因?yàn)閟cript腳本保存了帳號(hào)和密碼,當(dāng)傳輸完成后刪除filename.script腳本
覺(jué)得如何,如果用inet不如這個(gè)簡(jiǎn)單,畢竟FTP不是自己寫(xiě)的,不管PASV與否都正常使用,唯一就是密碼保存要等傳輸完成
你想的第一個(gè)方案是不可能的,F(xiàn)TP是文本傳輸協(xié)議,與HTTP不一樣,不能寫(xiě)POST,實(shí)在想那樣,VB做不了,需要手動(dòng)創(chuàng)建數(shù)據(jù)包欺騙服務(wù)器
My.Computer.Network.UploadFile
比如上傳到FTP
My.Computer.Network.UploadFile("d:\1.txt", "“, "FTP賬號(hào)", "FTP密碼", True, 100)
新手路過(guò)。
Dim OpenFileDialog As New OpenFileDialog
OpenFileDialog.InitialDirectory = My.Computer.FileSystem.SpecialDirectories.MyDocuments
OpenFileDialog.Filter = "文本文件(*.jpg)|*.jpg|所有文件(*.*)|*.*"
If (OpenFileDialog.ShowDialog(Me) = System.Windows.Forms.DialogResult.OK) Then
Dim FileName As String = OpenFileDialog.FileName
' TODO: 在此處添加打開(kāi)文件的代碼。
textbox1.Text = FileName
End If
第一個(gè)按鈕 上傳
Dim filelast As String = fileaddbefore.Text.Substring(fileaddbefore.Text.LastIndexOf("."), fileaddbefore.Text.Length - fileaddbefore.Text.LastIndexOf("."))
MessageBox.Show(filelast)
My.Computer.Network.UploadFile(textbox1.Text, "" 文件名.Text filelast, "登錄名1", "登錄密碼", True, 100)
第二個(gè)按鈕
用script腳本 直接調(diào)用?FTP 命令實(shí)現(xiàn)上傳文件到FTP服務(wù)器。
代碼如下:
'定義API函數(shù)
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("請(qǐng)輸入服務(wù)器地址")
uname?=?InputBox("請(qǐng)輸入帳號(hào)",?,?"anonymous")
upin?=?InputBox("請(qǐng)輸入密碼",?,?"IE@User")
filename?=?Timer()?'取時(shí)間為文件名filename
Open?filename??".script"?For?Output?As?#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
Open?filename??".txt"?For?Output?As?#1?'生成的filename.txt保存了combo1和text1的文字
Print?#1,?Text1.Text
Print?#1,?Combo1.Text
Close?#1
DoEvents
'調(diào)用ftp命令傳輸,不需要inet或winsock控件
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"?'因?yàn)閟cript腳本保存了帳號(hào)和密碼,當(dāng)傳輸完成后刪除filename.script腳本
End?Sub
1、實(shí)現(xiàn)上傳按鈕方法代碼。
2、判斷圖片對(duì)象是否為空代碼。
3、取得數(shù)據(jù)庫(kù)字段 dt.Rows(0)("Pic")方法代碼。
4、字節(jié)數(shù)組轉(zhuǎn)換為Image類(lèi)型方法代碼。
5、處理SQL中操作Image類(lèi)型方法代碼。
6、實(shí)現(xiàn)的上傳結(jié)果。