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 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78
| Protected sub Page_load(ByVal cheminSource As String, ByVal urlDestination As String, ByVal identifiant As String, ByVal motDePasse As String)
cheminSource ="C:\Inetpub\wwwroot\Newsite.xml" 'Uri du fichier sur le disque dur'
urlDestination = "***.***.***.***" 'Uri du fichier de destination sur le serveur FTP'
identifiant = "blabla" 'login du compte FTP utilisé'
motDePasse = "toto" 'mot de passe du compte FTP utilisé'
Dim monUriFichierLocal As System.Uri = Nothing
Dim monUriFichierDistant As System.Uri = Nothing
' Vérification de la validité de l Uri de l emplacement du fichier source'
If Not (monUriFichierLocal.Scheme = Uri.UriSchemeFile) Then
err1.Text="Le chemin du fichier local n'est pas valide ! Une erreur est survenue"
Exit Sub
End If
' Vérification de la validité de l Uri de l emplacement du fichier de destination'
If Not (monUriFichierDistant.Scheme = Uri.UriSchemeFtp) Then
err2.text="Le chemin du fichier sur le serveur FTP n'est pas valide ! Une erreur est surevnue"
Exit Sub
End If
' Création des 2 flux et du reader nécessaire pour l envoi du fichier'
Dim monRequestStream As Stream = Nothing
Dim fileStream As FileStream = Nothing
Dim uploadResponse As FtpWebResponse = Nothing
Try
' Requête d upload d un fichier vers le serveur'
Dim uploadRequest As FtpWebRequest = CType(WebRequest.Create(urlDestination), FtpWebRequest)
' Vérification de la présence des identifiants d un compte, si aucun alors'
' la connexion se fait en mode anonyme'
If Not identifiant.Length = 0 Then
Dim monCompte As New NetworkCredential(identifiant, motDePasse)
uploadRequest.Credentials = monCompte
End If
uploadRequest.Method = WebRequestMethods.Ftp.UploadFile
' Désactivation du proxy http incompatible avec cette requête'
uploadRequest.Proxy = Nothing
monRequestStream = uploadRequest.GetRequestStream()
fileStream = File.Open(cheminSource, FileMode.Open)
' Tableau d octets qui va contenir les données issues du fichier'
Dim buffer(1024) As Byte
Dim bytesRead As Integer
' Lecture des données et envoi de celle-ci dans le flux'
While True
bytesRead = fileStream.Read(buffer, 0, buffer.Length)
If bytesRead = 0 Then
Exit While
End If
' Ecriture des données dans le flux d upload vers le serveur FTP'
monRequestStream.Write(buffer, 0, bytesRead)
End While
'L objet requestStream dot être fermé avant de récupérer la réponse'
monRequestStream.Close()
uploadResponse = CType(uploadRequest.GetResponse(), FtpWebResponse)
err3.Text = "Upload terminé."
' Gestion des exceptions'
Catch ex As UriFormatException
err3.Text= ex.ToString
Catch ex As WebException
err3.Text= ex.ToString
Catch ex As IOException
err3.Text= ex.ToString
Finally
' Fermeture des différents flux utilisés'
If uploadResponse IsNot Nothing Then
uploadResponse.Close()
End If
If fileStream IsNot Nothing Then
fileStream.Close()
End If
If monRequestStream IsNot Nothing Then
monRequestStream.Close()
End If
End Try
End sub |
Partager