Torna al Thread
Public Function UploadFile(ByVal argFile As FileInfo) As Boolean
'ArgFile è di tipo FileInfo e contiene il percorso del file da Uploadare
Try
Dim checkTimeOut As New CheckTimeOut(60000) ' Questa è una classe che avevo creato per un controllo di TimeOut a mio piacimento
InitializeConnection(String.Format("{0}/{1}", _FtpPath, argFile.Name), WebRequestMethods.Ftp.UploadFile)
'Inizializza la connessione
Dim fr As FileStream = argFile.OpenRead
Dim buffer(1024) As Byte
Dim writer As Stream = FtpRequest.GetRequestStream
_Instructions.ProcessLog.Add(String.Format("{0} -- Upload del file {1} iniziato", Now.ToString, argFile.Name))
'Questo sopra non farci caso --- serviva a tenermi traccia delle varie fasi durante l'Upload
Dim bytesRead As Integer = fr.Read(buffer, 0, 1024)
While bytesRead <> 0
writer.Write(buffer, 0, bytesRead)
bytesRead = fr.Read(buffer, 0, 1024)
If checkTimeOut.Timeout Then Throw New ApplicationException("Timeout dell'operazione GetContentFile")
End While
writer.Close()
fr.Close()
_Instructions.ProcessLog.Add(String.Format("{0} -- Upload del file {1} terminato", Now.ToString, argFile.Name))
Return True
Catch ex As Exception
_Instructions.ProcessLog.Add(String.Format("Download Error : {0}", ex.Message))
End Try
End Function
Private Sub InitializeConnection(ByVal argFtpPath As String, ByVal argType As String)
FtpRequest = CType(FtpWebRequest.Create(argFtpPath), FtpWebRequest)
FtpRequest.Credentials = New NetworkCredential(_Credentials.UserName, _Credentials.Password)
FtpRequest.Method = argType
End Sub