12345 67890 Imports System Imports System.Data Imports System.Net Imports System.IO Public Class FrmDown_Upl Dim FtpHost As String = "ftp://ftp.gunze.co.id" Dim FtpHost2 As String = "ftp://ftp.gunze.co.id/public_html/" Dim FtpUser As String = "gunzeid" Dim FtpPassword As String = "gnz021" Private Sub BtnUpl_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BtnUpl.Click 'My.Computer.Network.UploadFile("C:\test.txt", "http://www.gunze.co.id/data/") UploadFile("C:\", "test.txt") End Sub Public Sub UploadFile(ByVal filepath As String, ByVal filename As String) Try Dim clsRequest As FtpWebRequest = DirectCast(WebRequest.Create(FtpHost2 & "/" & filename), FtpWebRequest) clsRequest.Credentials = New NetworkCredential(FtpUser, FtpPassword) clsRequest.Method = WebRequestMethods.Ftp.UploadFile Dim bFile() As Byte = File.ReadAllBytes(filepath & "\" & filename) Dim clsStream As Stream = clsRequest.GetRequestStream() Dim read As Integer = 0 Dim intChunk As Integer Dim intOffset As Integer 'clsStream.Write(bFile, 0, bFile.Length) intChunk = bFile.Length / 100 ProgressBar1.Maximum = 100 ProgressBar1.Minimum = 0 For I As Integer = 1 To 100 If intOffset + intChunk > bFile.Length Then intChunk = bFile.Length - intOffset clsStream.Write(bFile, intOffset, intChunk) intOffset += intChunk ProgressBar1.Value = I Next If ProgressBar1.Value = ProgressBar1.Maximum Then MsgBox("File Uploaded") clsStream.Close() clsStream.Dispose() Catch ex As Exception MessageBox.Show(ex.Message) End Try End Sub Private Sub fileDownload() Try Dim outputStream As FileStream = New FileStream("D:\tes.txt", FileMode.Create) Dim ftpreq As FtpWebRequest = DirectCast(FtpWebRequest.Create(New Uri(FtpHost & "/" & "test.txt")), FtpWebRequest) Dim ftpresp As FtpWebResponse = DirectCast(ftpreq.GetResponse(), FtpWebResponse) Dim ftpstream As Stream = ftpresp.GetResponseStream() ftpreq.Method = WebRequestMethods.Ftp.DownloadFile ftpreq.UseBinary = True ftpreq.Credentials = New NetworkCredential() Dim cl As Long = ftpresp.ContentLength Dim buffer1() As Byte ReDim buffer1(cl) outputStream.Write(buffer1, 0, buffer1.Length) ftpstream.Close() outputStream.Close() ftpresp.Close() Catch ex As Exception MessageBox.Show(ex.Message) End Try End Sub Private Sub BtnDown_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BtnDown.Click fileDownload2("D:\", "test.txt") End Sub Sub fileDownload2(ByVal filepath As String, ByVal filename As String) Dim ftp As FtpWebRequest = CType(FtpWebRequest.Create(FtpHost & "/" & filename), FtpWebRequest) ftp.Credentials = New System.Net.NetworkCredential(FtpUser, FtpPassword) ftp.KeepAlive = False ftp.UseBinary = True ftp.Method = WebRequestMethods.Ftp.DownloadFile Using response As FtpWebResponse = _ CType(ftp.GetResponse, System.Net.FtpWebResponse) Using responseStream As IO.Stream = response.GetResponseStream 'loop to read & write to file Using fs As New IO.FileStream(filepath & "\" & filename, IO.FileMode.Create) Dim buffer(2047) As Byte Dim read As Integer = 0 Do read = responseStream.Read(buffer, 0, buffer.Length) fs.Write(buffer, 0, read) Loop Until read = 0 'see Note(1) responseStream.Close() fs.Flush() fs.Close() End Using responseStream.Close() End Using response.Close() End Using End Sub Sub UploadFile2(ByVal filepath As String, ByVal filename As String) Try Dim clsRequest As FtpWebRequest = DirectCast(WebRequest.Create(FtpHost2 & "/" & filename), FtpWebRequest) Dim completed As Integer Dim pcompleted As Integer clsRequest.Credentials = New NetworkCredential(FtpUser, FtpPassword) clsRequest.Method = WebRequestMethods.Ftp.UploadFile Using response As FtpWebResponse = _ CType(clsRequest.GetResponse, System.Net.FtpWebResponse) Using responseStream As IO.Stream = response.GetResponseStream 'loop to read & write to file Using fs As New IO.FileStream(filepath & "\" & filename, IO.FileMode.Create) Dim buffer(2047) As Byte Dim read As Integer = 0 Do read = responseStream.Read(buffer, 0, buffer.Length) fs.Write(buffer, 0, read) 'completed += 2047 'pcompleted = (completed / fs.Length) * 100 'If pcompleted > 100 Then pcompleted = 100 'ProgressBar1.Value = pcompleted Loop Until read = 0 'see Note(1) responseStream.Close() fs.Flush() fs.Close() End Using responseStream.Close() End Using response.Close() End Using 'Dim bFile() As Byte = File.ReadAllBytes(filepath & "\" & filename) 'Dim clsStream As Stream = clsRequest.GetRequestStream() 'clsStream.Write(bFile, 0, bFile.Length) 'clsStream.Close() 'clsStream.Dispose() Catch ex As Exception MessageBox.Show(ex.Message) End Try End Sub Sub UploadFile3(ByVal filepath As String, ByVal filename As String) Dim _fileName As String = filepath + "\" + filename Dim _File As FileInfo = New FileInfo(_fileName) Dim _FtpRequest As FtpWebRequest = CType(WebRequest.Create(FtpHost2 & "/" & filename), FtpWebRequest) _FtpRequest.Credentials = New NetworkCredential(FtpUser, FtpPassword) _FtpRequest.Method = WebRequestMethods.Ftp.UploadFile Dim _fileContents(_File.Length - 1) As Byte Dim fr As FileStream = _File.OpenRead() fr.Read(_fileContents, 0, Convert.ToInt32(_File.Length)) fr.Close() Dim writer As Stream = _FtpRequest.GetRequestStream() writer.Write(_fileContents, 0, _fileContents.Length) ProgressBar1.Maximum = _fileContents.Length ProgressBar1.Minimum = 0 'Come faccio a valorizzare "ProgressBar1.Value" con i byte caricati progressivamete?? 'MyProgressBar1.Value = 'writer.Close() 'Return "File caricato" End Sub End Class