01.
02.
03.
04.
05.
Private
Function
Upload(
ByVal
pPath
As
String
)
As
Boolean
06.
Const
BUFFER_SIZE
As
Integer
= 4096
07.
08.
Me
.pgbUpload.Value = 0
09.
10.
Dim
request
As
FtpWebRequest
11.
Dim
response
As
FtpWebResponse
12.
13.
Dim
sourceStream
As
Stream =
New
MemoryStream
14.
Dim
requestStream
As
Stream = sourceStream
15.
16.
Try
17.
18.
request =
CType
(WebRequest.Create(pPath), FtpWebRequest)
19.
request.UseBinary =
True
20.
request.KeepAlive =
False
21.
request.Method = WebRequestMethods.Ftp.UploadFile
22.
request.Credentials =
New
NetworkCredential(
Me
.txtUserFtp.Text.Trim,
Me
.txtPassFtp.Text.Trim)
23.
24.
If
_HaveEXE
Then
25.
If
WorkType = UploadType.IsExe
Then
26.
sourceStream =
New
FileStream(
Me
.txtEXEPath.Text.Trim, FileMode.Open)
27.
End
If
28.
End
If
29.
30.
If
_HaveDLL
Then
31.
If
WorkType = UploadType.IsDll
Then
32.
sourceStream =
New
FileStream(
Me
.txtDLLPath.Text.Trim, FileMode.Open)
33.
End
If
34.
End
If
35.
36.
If
_HaveRepTH
Then
37.
If
WorkType = UploadType.IsRepTH
Then
38.
sourceStream =
New
FileStream(
Me
.txtRepTHPath.Text.Trim, FileMode.Open)
39.
End
If
40.
End
If
41.
42.
If
_HaveRepEN
Then
43.
If
WorkType = UploadType.IsRepEN
Then
44.
sourceStream =
New
FileStream(
Me
.txtRepENPath.Text.Trim, FileMode.Open)
45.
End
If
46.
End
If
47.
48.
If
_WorkType = UploadType.IsGenLog
Then
49.
sourceStream =
New
FileStream(Application.StartupPath &
"\Server_Version.xml"
, FileMode.Open)
50.
End
If
51.
requestStream = request.GetRequestStream()
52.
request.ContentLength = sourceStream.Length
53.
Me
.pgbUpload.Maximum = sourceStream.Length
54.
55.
Dim
buffer(BUFFER_SIZE)
As
Byte
56.
Dim
bytesRead
As
Integer
= sourceStream.Read(buffer, 0, BUFFER_SIZE)
57.
58.
Do
59.
Application.DoEvents()
60.
requestStream.Write(buffer, 0, bytesRead)
61.
bytesRead = sourceStream.Read(buffer, 0, BUFFER_SIZE)
62.
Try
63.
pgbUpload.Value += bytesRead
64.
Catch
ex
As
Exception
65.
66.
End
Try
67.
Loop
While
(bytesRead > 0)
68.
69.
Me
.pgbUpload.Value =
Me
.pgbUpload.Maximum
70.
71.
sourceStream.Close()
72.
requestStream.Close()
73.
74.
response =
CType
(request.GetResponse, FtpWebResponse)
75.
76.
Catch
ex
As
Exception
77.
MessageBox.Show(ex.
GetType
().Name +
": \n"
+ ex.Message,
"Exception!"
, MessageBoxButtons.OK, MessageBoxIcon.
Error
)
78.
Return
False
79.
End
Try
80.
81.
Return
True
82.
End
Function