1. 怎麼通過ftp傳送文本文件
不知道你的winsock是udp還是tcpip協議
這里給你一個我寫的實例我是用的udp這個發送了一段數據不一定接收就正確所以我做了校驗
'以下是接收文件的
OptionExplicit
DimFOKAsBoolean,FsAsLong,FileNumberAsInteger,LenFileAsLong '文件的長度
PrivateSubCommand1_Click()
UnloadMe
EndSub
PrivateSubCommand2_Click()
OnErrorResumeNext
DimAAsString
Me.Caption="開始下載"
IfDir(Text2.Text)<>""AndChV.Value=0Then
IfMsgBox("文件已經存在,覆蓋嗎?",vbCritical+vbYesNo)=vbYesThenKillText2.TextElseExitSub
Else
KillText2.Text
EndIf
IfText2.Text=""ThenText2.Text=Text1.Text
'Command2.Enabled=False
IfCh.Value=0ThenA="#DOW#"ElseA="#DOV#"
FMain.Wsk.SendDataA&Text1.Text
Wt1
FMain.Wsk.SendData"#DOE#"&Text2.Text
EndSub
PrivateSubForm_Load()
DimAAsString
'FMain.Ts.Enabled=True
OnErrorResumeNext
IfFMain.Cb.Text="本地組"OrFMain.Cb.Text="全部組"Then
Me.Caption="請重選下載用戶[「組」不能正確下載]"
Else
Command1.Top=-2000
Winsock0.LocalPort=FilePort
Winsock0.Bind
EndIf
EndSub
PrivateSubForm_Unload(CancelAsInteger)
OnErrorResumeNext
Winsock0.Close
Err.Clear
EndSub
PrivateSubLa_Click()
CDL.FileName=""
CDL.ShowOpen
Text2.Text=CDL.FileName
EndSub
PrivateSubWinsock0_DataArrival(ByValbytesTotalAsLong)
OnErrorResumeNext
DimFileByte()AsByte,AAsString,MendByte()AsByte,IAsLong,JAsLong,TempAsString,WAsString
Winsock0.GetDataFileByte,vbArray+vbByte'接收類型為:位元組數組
J=UBound(FileByte)'獲得包長
ForI=0To7Step2'合並包頭
Temp=Temp&Chr(FileByte(I))
Next
ForI=0To9'文件發送結束標記
A=A&Chr(FileByte(I))
Next
IfA="#ERR#"ThenWinsock0.SendData"no"
IfA="#END#"Then
ForI=0ToLen(FMain.TIn.Text)
IfI<100Then
W=Left(Right(FMain.TIn.Text,I),1)
IfW="!"Then
W=Left(Right(FMain.TIn.Text,I+4),5)
ExitFor
EndIf
Else
ExitFor
EndIf
NextI
IfW<>"下載完成!"Then
FOK=False
Me.Caption="下載完成!["&Text2.Text&"]"
FMain.TIn.Text=FMain.TIn.Text&"["&Now&"]"&"下載完成!("&Fs&"<="&LenFile&")"&vbCrLf
Command2.Enabled=True
EndIf
Else
IfVal(Temp)=JThen'比較長度看丟包沒有
ReDimMendByte(J-8)
ForI=0ToJ-8'提出包頭
MendByte(I)=FileByte(I+7)
Next
Fs=Fs+UBound(FileByte)-7
Put#FileNumber,,MendByte'寫文件
Winsock0.SendData"ok"'發送繼續發送的請求
Me.Caption="文件下載完成:["&Left(Fs/LenFile*100,4)&"%]"
Else
IfLeft(A,10)="#SENDSTA#"Then
A=""
ForI=10ToUBound(FileByte)'文件發送結束標記
A=A&Chr(FileByte(I))
Next
LenFile=Val(Left(A,InStr(A,"//")-1))
ForI=0ToLen(Text2.Text)
A=Left(Right(Text2.Text,I),1)
IfA=""ThenExitFor
Next
IfDir(Left(Text2.Text,Len(Text2.Text)-I+1),vbDirectory)=""ThenMkDirLeft(Text2.Text,Len(Text2.Text)-I+1)
'"#SENDSTA#"&FileLen(Text1.Text)&"//"&Text2.Text
FileNumber=FreeFile'取得未使用的文件號
Fs=0
OpenText2.TextForBinaryAs#FileNumber'打開文件
Else
IfA<>"#SENDEND#"Then
Winsock0.SendData"no"'出現丟包,請求重發
Else
Winsock0.SendData"#END#"'發送繼續發送的請求
Close#FileNumber
Reset
IfFOK=FalseThen
FOK=True
Me.Caption="下載完成!["&Text2.Text&"]"
FMain.TIn.Text=FMain.TIn.Text&"["&Now&"]"&"下載完成!("&Fs&"<="&LenFile&")"&vbCrLf
Command2.Enabled=True
Else
FOK=False
EndIf
EndIf
EndIf
EndIf
EndIf
EndSub
2. 如何使用FTP上傳文件
1、下載軟體FileZilla(用的比較多的一款),
3. 怎樣把文件放到FTP裡面去
1、雙擊打開我的電腦,在我的電腦頁面中輸入ftp伺服器網址。