Télécharger un fichier avec My.Computer.Network.DownloadFile

Résolu
cs_fauve Messages postés 661 Date d'inscription vendredi 2 décembre 2005 Statut Membre Dernière intervention 23 mars 2011 - 27 oct. 2008 à 18:22
cs_fauve Messages postés 661 Date d'inscription vendredi 2 décembre 2005 Statut Membre Dernière intervention 23 mars 2011 - 30 oct. 2008 à 14:20
Salut,

Voilà, je rencontre un petit soucis. Je souhaite concevoir un programme pour modifier des fichiers .php en fonction des informations rentrées par l'utilisateur.

On arrive donc au problème, je souhaite télécharger les fichiers .php depuis mon serveur.

Avec My.Computer.Network.UploadFile, j'arrive à envoyer mes fichiers sans problème sur mon serveur.

Mais avec avec My.Computer.Network.DownloadFile, je ne récupère que la version html du fichier php (ce qui est normal) même en spécifiant l'identifiant et le mot de passe.

Et il possible avec cette méthode de pouvoir se connecter sur mon serveur et de récupérer réellement les fichiers .php et non leurs versions html ?

(je dis cà car pour UploadFile, il faut avoir une mise en forme spéciale comme ceci :

"ftp://login:pass@Votre_serveur.com/Dossier/fichier_uploader.txt") Donc je me dis que ca doit être pareil dour DownloadFile non

Merci beaucoup

3 réponses

cs_fauve Messages postés 661 Date d'inscription vendredi 2 décembre 2005 Statut Membre Dernière intervention 23 mars 2011 8
30 oct. 2008 à 14:20
Salut,

Ben Finalement, je croyais qu'avec la fonction DownloadFile, on pouvait télécharger un fichier sur un serveur FTP mais je n'obtenais pas ce que je voulais.

J'ai donc crée une fonction permettant de le faire :

Ps : N'oubliez pas d'importer System.Net

Sub DownloadFileFTP(ByVal FichierLocal As String, ByVal FichierFTP As String, ByVal hote As String, ByVal identifiant As String, ByVal motdepasse As String)

        ' FichierLocal --> chemin d'accès complet où sera enregistré le fichier --> Exemple : "D:\index.html"
        ' FichierFTP   --> Chemin d'accès complet du fichier à télécharger      --> Exemple : "/temp/index.html" pour télécharger le fichier 'index.html' dans le dossier 'temp'
        ' hote         --> Réprésente l'hôte où il faudra se connecter         --> Syntaxe : "ftp://hostname"
        ' identifiant  --> Défini le login
        ' motdepasse   --> Défini le mot de passe

        '1. Crée une requête : doit être de la forme ftp://hotename

        Dim URI As String = hote & FichierFTP
        Dim ftp As System.Net.FtpWebRequest = _
        CType(FtpWebRequest.Create(URI), FtpWebRequest)

        '2. Définir l'identifiant et le mot de passe

        ftp.Credentials = New  _
        System.Net.NetworkCredential(identifiant, motdepasse)

        '3. Réglage

        ftp.KeepAlive = False

        'Utilisation du transfert binaire

        ftp.UseBinary = True

        'Définir les actions voulues (ici, télécharger un fichier)

        ftp.UsePassive = False
        ftp.Method = System.Net.WebRequestMethods.Ftp.DownloadFile

        'Boucle pour lire et écrire vers un fichier

        Using response As System.Net.FtpWebResponse = CType(ftp.GetResponse, System.Net.FtpWebResponse)
            Using responseStream As IO.Stream = response.GetResponseStream
                Using fs As New IO.FileStream(FichierLocal, 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) '----- Ecriture de la variable lue dans le fichier
                    Loop Until read = 0

                    responseStream.Close()
                    fs.Flush()
                    fs.Close()
                End Using
                responseStream.Close()
            End Using
            response.Close()
        End Using
    End Sub


Fauve
3