1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62
|
structure ParamFtp
Dim AddFtpAs String
Dim sUserAs String
Dim sPassAs String
end structure
Private Function UploadFichier(ByVal oParamFtp As ParamFtp) As Boolean
Dim oFileStream As System.IO.FileStream = Nothing
Dim sMessageEreur As String
Try
Dim strCheminSource As String = 'Chemin source FTP
Dim strUrlDestination As String = oParamFtp.AddFtp
Dim strIdentifiant As String = oParamFtp.sUser
Dim strMotDePasse As String = oParamFtp.sPass
'Création de flux de données
Dim oRequestStream As System.IO.Stream = Nothing
Dim oUriFichierLocal As New System.Uri(strCheminSource)
Dim nBuffer() As Byte
Dim oUriFichierDistant As New System.Uri(strUrlDestination & New System.IO.FileInfo(strCheminSource).Name)
Dim oUploadRequest As System.Net.FtpWebRequest = CType(System.Net.WebRequest.Create(oUriFichierDistant), System.Net.FtpWebRequest)
Dim oUploadResponse As System.Net.FtpWebResponse = Nothing
If Not (oUriFichierLocal.Scheme = Uri.UriSchemeFile) Then
sMessageEreur = "Erreur de shema dans le fichier source : " & strCheminSource
Throw New Exception(sMessageEreur)
End If
If Not (oUriFichierDistant.Scheme = Uri.UriSchemeFtp) Then
sMessageEreur = "Erreur de shema dans le fichier distant : " & strUrlDestination
Throw New Exception(sMessageEreur)
End If
If Not strIdentifiant.Length = 0 Then
Dim oCompteFTP As New System.Net.NetworkCredential(strIdentifiant, strMotDePasse)
oUploadRequest.Credentials = oCompteFTP
End If
oUploadRequest.Method = System.Net.WebRequestMethods.Ftp.UploadFile
oUploadRequest.Proxy = Nothing
oRequestStream = oUploadRequest.GetRequestStream()
oFileStream = System.IO.File.Open(strCheminSource, System.IO.FileMode.Open)
nBuffer = New Byte(oFileStream.Length) {}
oFileStream.Read(nBuffer, 0, oFileStream.Length())
oRequestStream.Write(nBuffer, 0, oFileStream.Length())
oRequestStream.Close()
oUploadResponse = CType(oUploadRequest.GetResponse(), System.Net.FtpWebResponse)
Return True
Catch ex As Exception
sMessageEreur = ex.Message
Return False
Finally
If oFileStream IsNot Nothing Then oFileStream.Close()
End Try
End Function |
Partager