| 12
 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