Précédent   Forum du club des développeurs et IT Pro > Dotnet > Langages > VB.NET
VB.NET Forum d'entraide sur la programmation Visual Basic .NET. Avant de poster -> FAQ VB.NET, Articles VB.NET, Sources VB.NET
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse
 
Outils de la discussion
Publicité
'
Vieux 02/01/2013, 23h01   #1
kitcarflo
Candidat au titre de Membre du Club
 
Homme
Inscription : avril 2008
Messages : 46
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 26
Localisation : France

Informations forums :
Inscription : avril 2008
Messages : 46
Points : 11
Points : 11
Par défaut Telechargement d'un fichier sur FTP

Tout d'abord,
Je vous souhaite à tous mes meilleurs voeux pour cette nouvelle année.

Ma question concerne le téléchargement de fichier sur un serveur FTP.

Attention : Téléchargement = copier un fichier du Serveur FTP et le mettre sur l'ordi. Dans l'autre sens j'y arrive, et si des personnes sont interressé, je peux donner mon code.

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
 
        Dim user = "Votre user"
        Dim pass = "Votre mot de passe"
        Dim fichlocal = "c:/essai.txt" 'Liens du fichier sur votre ordi
        Dim fichftp = "ftp://votreserveur/dossier1/dossier2/essai..txt" 'lien du ftp et le dossier de destination
        'upload
 
        Try
            My.Computer.Network.DownloadFile(fichftp, fichlocal, user, pass)
        Catch ex As Exception
            MsgBox(ex.Message)
        End Try
 
        MessageBox.Show("Donwload correctement effectuer", "ok")
Il s'agit la d'un code que l'on retrouve un peu partout qui est parraît-il la façon dont-il faut faire. Or il me retourne "Le serveur distant a retourné une erreur : (530) Non connecté"

Et je n'arrive pas à trouver une solution,,, si quelqu'un à une solution ????

Merci
kitcarflo est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/01/2013, 23h20   #2
wallace1
Membre habitué
 
Homme
Administrateur systèmes et réseaux
Inscription : octobre 2008
Messages : 62
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations professionnelles :
Activité : Administrateur systèmes et réseaux
Secteur : Aéronautique - Marine - Espace - Armement

Informations forums :
Inscription : octobre 2008
Messages : 62
Points : 139
Points : 139
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
 
Friend WithEvents W as New Webclient
 
Private Sub DowloadFileAsync()
Try
  W.Credentials = New NetworkCredential(user, pass)
  W.DownloadFileAsync(New Uri(fichftp), fichlocal)
Catch ex as exception
  msgbox(ex.tostring)
end try
end sub
 
Private Sub Progress(sender As Object, e As DownloadProgressChangedEventArgs) Handles W.DownloadProgressChanged
  Me.Progressbar1.Value = e.ProgressPercentage
    End Sub
 
Private Sub Completed(sender As Object, e As AsyncCompletedEventArgs) Handles W.DownloadFileCompleted
  Msgbox("Téléchargement terminé !")
end sub
wallace1 est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 02/01/2013, 23h22   #3
Rainui
Membre expérimenté
 
Homme Yves TRICHAUD
Technicien bio médical
Inscription : décembre 2012
Messages : 228
Détails du profil
Informations personnelles :
Nom : Homme Yves TRICHAUD
Âge : 29
Localisation : France, Gard (Languedoc Roussillon)

Informations professionnelles :
Activité : Technicien bio médical
Secteur : Santé

Informations forums :
Inscription : décembre 2012
Messages : 228
Points : 558
Points : 558
Bonsoir,

Pourrais tu poster ton code correspondant à :

Code :
1
2
3
4
5
6
7
8
9
Dim fichlocal = "c:/essai.txt" 'Liens du fichier sur votre ordi
Dim fichftp = "ftp://votreserveur/dossier1/dossier2/essai..txt" 'lien du ftp et le dossier de destination
    'upload
 
    Try
        My.Computer.Network.DownloadFile(fichftp, fichlocal, user, pass)
    Catch ex As Exception
        MsgBox(ex.Message)
    End Try
Défois qu'il y ai une faute

Ps: il est gentil wallace, il te met même une progressbar
__________________
est ton amis, MSDN est ton maître, pour le reste il y a Developpez.net. Pensez au au et
Rainui est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/01/2013, 07h34   #4
kitcarflo
Candidat au titre de Membre du Club
 
Homme
Inscription : avril 2008
Messages : 46
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 26
Localisation : France

Informations forums :
Inscription : avril 2008
Messages : 46
Points : 11
Points : 11
Bonjour.

Rainui,,, je voit ce que tu veux dire sur la faute, genre un oubli de lettre dans le pseudo ou le mot de passe ou dans le lien FTP. Ce genre d'oubli c'est casse ..... car très dur de le trouver.

Quoi qu'il en soit ce n'est pas sa car.
Je met connecte avec le Pseudo et le MDP sans problème sur filezilla. Je fais un copier-coller en faisant attention de ne pas mettre d'espace ni avant ni après le Pseudo ou Mot de passe.
Pour le lien du fichier FTP, je vais sur fileZilla, je "clic droit" sur le fichier que je veux télécharger et je met en mémoire le lien que je colle sur mon code.

N'étant pas chez moi mais au taf, je testerai que ce soir en rentrant la méthode de Wallace.

Je vous tiens au courant ce soir du résultat.

Merci
kitcarflo est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/01/2013, 10h50   #5
wallace1
Membre habitué
 
Homme
Administrateur systèmes et réseaux
Inscription : octobre 2008
Messages : 62
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations professionnelles :
Activité : Administrateur systèmes et réseaux
Secteur : Aéronautique - Marine - Espace - Armement

Informations forums :
Inscription : octobre 2008
Messages : 62
Points : 139
Points : 139
--> J'ai corrigé une petite erreur dans mon 1er post (Friend WithEvents)
--> Il est également recommandé de vérifier si le thread du "Webclient" n'est pas déjà en cours d'exécution avant de lancer le téléchargement :

Code :
1
2
3
4
 
  If Not W.IsBusy Then
      downloadFileAsync
  end if
A+

PS si ca ne fonctionne toujours pas alors tu as certainement mal renseigné ton url ftp.

Cordialement wallace
wallace1 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/01/2013, 18h08   #6
kitcarflo
Candidat au titre de Membre du Club
 
Homme
Inscription : avril 2008
Messages : 46
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 26
Localisation : France

Informations forums :
Inscription : avril 2008
Messages : 46
Points : 11
Points : 11
Wallace,
Effectivement ton code ne plante pas.

Cela me créer bien le fichier la ou je demande, mais le fichier est vide
kitcarflo est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/01/2013, 22h21   #7
wallace1
Membre habitué
 
Homme
Administrateur systèmes et réseaux
Inscription : octobre 2008
Messages : 62
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations professionnelles :
Activité : Administrateur systèmes et réseaux
Secteur : Aéronautique - Marine - Espace - Armement

Informations forums :
Inscription : octobre 2008
Messages : 62
Points : 139
Points : 139
Citation:
Envoyé par kitcarflo Voir le message
Wallace,
Effectivement ton code ne plante pas.

Cela me créer bien le fichier la ou je demande, mais le fichier est vide
lool bah là on ne peut rien faire de plus.....

A+
wallace1 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/01/2013, 23h24   #8
kitcarflo
Candidat au titre de Membre du Club
 
Homme
Inscription : avril 2008
Messages : 46
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 26
Localisation : France

Informations forums :
Inscription : avril 2008
Messages : 46
Points : 11
Points : 11
J'ai décidé de changer de méthode.

J'ai créer un lien sur un site internet. Quand on clique dessus, sa nous télécharge le fichier.

Tous cela pour utiliser ceci :

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
Imports System.IO
 
Public Class Form1
    Dim directory As String = "C:\test.csv"
    Private Sub Button1_Click(sender As System.Object, e As System.EventArgs) Handles Button1.Click
        If File.Exists(directory) Then
            MsgBox("Le fichier existe sur l'ordinateur", 64, "Erreur")
            Exit Sub
        Else
            My.Computer.Network.DownloadFile("http://www.monsite.fr/test.csv", directory)
            MsgBox("fichier telechargé", 64, "good")
        End If
    End Sub
End Class
!!! Attention !!! www.monsite.fr est un nom de site faux. Je ne peut pas donner ici le vrai nom du site pour des questions de confidentialité.

Le problème qu'il m'arrive lorsque je lance le prog.
Une exception s'est produite lors d'une requête WebClient.

Pourtant lorsque j'accède au site et que je clique sur le lien pour télécharger le fichier, sa marche.

Pour info, j'ai suivi ce tutorial :

Avez-vous une idée ?
kitcarflo est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/01/2013, 00h07   #9
wallace1
Membre habitué
 
Homme
Administrateur systèmes et réseaux
Inscription : octobre 2008
Messages : 62
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations professionnelles :
Activité : Administrateur systèmes et réseaux
Secteur : Aéronautique - Marine - Espace - Armement

Informations forums :
Inscription : octobre 2008
Messages : 62
Points : 139
Points : 139
Que recherches-tu car dans ton 1er post il s'agit d'1 lien FTP avec des identifiants de connexion alors que là tu télécharges depuis 1 lien HTTP......????

Que souhaites-tu exactement ?? 1 téléchargement depuis 1 FTP avec des identifiants de connexion ou bien 1 téléchargement depuis 1 lien HTTP ??
wallace1 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/01/2013, 00h40   #10
hackoofr
Expert Confirmé
 
Avatar de hackoofr
 
Homme Mehdi Tounisiano
Enseignant
Inscription : juin 2009
Messages : 1 641
Détails du profil
Informations personnelles :
Nom : Homme Mehdi Tounisiano
Âge : 38
Localisation : Tunisie

Informations professionnelles :
Activité : Enseignant

Informations forums :
Inscription : juin 2009
Messages : 1 641
Points : 3 717
Points : 3 717

Vous pouvez tester [VBS] FTP Explorer : une solution pour transformer votre navigateur web ou bien l'explorateur windows en client FTP

hackoofr est actuellement connecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/01/2013, 09h39   #11
kitcarflo
Candidat au titre de Membre du Club
 
Homme
Inscription : avril 2008
Messages : 46
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 26
Localisation : France

Informations forums :
Inscription : avril 2008
Messages : 46
Points : 11
Points : 11
Citation:
Envoyé par wallace1 Voir le message
Que recherches-tu car dans ton 1er post il s'agit d'1 lien FTP avec des identifiants de connexion alors que là tu télécharges depuis 1 lien HTTP......????

Que souhaites-tu exactement ?? 1 téléchargement depuis 1 FTP avec des identifiants de connexion ou bien 1 téléchargement depuis 1 lien HTTP ??
En fait je programme une application. Et dans celle-ci je doit récupérer des informations qui se trouve dans un fichier sur le serveur.

Donc Solution 1.
Se connecter au serveur, télécharger le fichier, lire le fichier, le supprimer de l'ordi

Solution 2.
Mettre le fichier en télechargement sur l'ordi et le télécharger.

Mais la, Solution1 / Solution2 ne marche pas.
kitcarflo est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/01/2013, 12h38   #12
wallace1
Membre habitué
 
Homme
Administrateur systèmes et réseaux
Inscription : octobre 2008
Messages : 62
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations professionnelles :
Activité : Administrateur systèmes et réseaux
Secteur : Aéronautique - Marine - Espace - Armement

Informations forums :
Inscription : octobre 2008
Messages : 62
Points : 139
Points : 139
Dans ta solution 1 on comprends qu il s agit d 1 protocole FTP mais dans la 2 tu essayes de recuperer ton fichier sur ce meme FTP mais avec un lien direct du protocole HTTP ?? Si c est cas tu es au courant que l adresse Ftp et http ne sont normalement pas forcement identiques ?? Comment est securisé ton ftp, y a t il une resolution d adresse ??

Normalement la solution 1 devrait fonctionner je ne comprends pas ton soucis ??
wallace1 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/01/2013, 14h02   #13
kitcarflo
Candidat au titre de Membre du Club
 
Homme
Inscription : avril 2008
Messages : 46
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 26
Localisation : France

Informations forums :
Inscription : avril 2008
Messages : 46
Points : 11
Points : 11
Citation:
Envoyé par wallace1 Voir le message
Dans ta solution 1 on comprends qu il s agit d 1 protocole FTP mais dans la 2 tu essayes de recuperer ton fichier sur ce meme FTP mais avec un lien direct du protocole HTTP ?? Si c est cas tu es au courant que l adresse Ftp et http ne sont normalement pas forcement identiques ?? Comment est securisé ton ftp, y a t il une resolution d adresse ??

Normalement la solution 1 devrait fonctionner je ne comprends pas ton soucis ??
Tout à fait, sur la solution 1, c'est un "lien FTP" le voici :
Code :
ftp://s251458729.onlinehome.fr/test.csv
Sur la solution 2, c'est le lien HTTP

Comme tu le dit, la solution 1, marche mais presque, car sa me télécharge bien mon fichier, mais il est vide.

Comment est sécurisé mon réseau, je ne sais pas car je n'ai pas de compétence la dedans. C'est un ami qui s'y connait bien qui gère le serveur. Mais il m'a confirmé que le serveur autoriser l'upload et le download client.
kitcarflo est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/01/2013, 14h37   #14
wallace1
Membre habitué
 
Homme
Administrateur systèmes et réseaux
Inscription : octobre 2008
Messages : 62
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations professionnelles :
Activité : Administrateur systèmes et réseaux
Secteur : Aéronautique - Marine - Espace - Armement

Informations forums :
Inscription : octobre 2008
Messages : 62
Points : 139
Points : 139
Le port pour le traffic est-il le 21 (par défaut) ou en a t-il paramétré 1 autre ?

Et quelle base d'url HTTP t'as-t-il dit d'utiliser pour télécharger 1 fichier depuis le FTP ?

.... ce n'est pas cela que tu utilises comme URL pour le lien HTTP j'espère : http://s251458729.onlinehome.fr/test.csv ?? car de ce que j'ai pu tester vers le serveur ca ne peut pas être ca !

As-tu essayés de paramétrer 1 client FTP comme FileZilla par exemple pour tester le download et ainsi voir si le fichier téléchargé est vide ??
wallace1 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/01/2013, 15h54   #15
kitcarflo
Candidat au titre de Membre du Club
 
Homme
Inscription : avril 2008
Messages : 46
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 26
Localisation : France

Informations forums :
Inscription : avril 2008
Messages : 46
Points : 11
Points : 11
Lorsque je me connecte sur Filezilla, je n'écrit rien dans la case "Port", je laisse vide. Et oui sur FileZilla une fois connecter, je peux mettre ou enlever des fichiers, je peux telecharger des fichiers, et ils ne sont pas vide.

Concernant le lien, je ne marque pas http://s251458729.onlinehome.fr/test.csv mais ftp://s251458729.onlinehome.fr/test.csv
kitcarflo est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/01/2013, 16h25   #16
wallace1
Membre habitué
 
Homme
Administrateur systèmes et réseaux
Inscription : octobre 2008
Messages : 62
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations professionnelles :
Activité : Administrateur systèmes et réseaux
Secteur : Aéronautique - Marine - Espace - Armement

Informations forums :
Inscription : octobre 2008
Messages : 62
Points : 139
Points : 139
Citation:
Envoyé par kitcarflo Voir le message
Lorsque je me connecte sur Filezilla, je n'écrit rien dans la case "Port", je laisse vide. Et oui sur FileZilla une fois connecter, je peux mettre ou enlever des fichiers, je peux telecharger des fichiers, et ils ne sont pas vide.

Concernant le lien, je ne marque pas http://s251458729.onlinehome.fr/test.csv mais ftp://s251458729.onlinehome.fr/test.csv
Bon ok.

Lorsque tu ouvres ton navigateur et que tu souhaites que ton fichier soit téléchargeable depuis n'importe quel PC tu ne peux pas taper ceci :

Code :
ftp://s251458729.onlinehome.fr/test.csv
...sinon celui qui veut télécharger depuis son PC sera prompté à taper des identifiants de connexion !


Quand tu veux accéder au fichier sans taper de nom d'utilisateur et de mot de passe c'est 1 protocole HTTP donc 1 direct Link.

Exemple avec 1 FTP (sécurisé) :

--> lorsque je veux télécharger mon fichier en protocole FTP (requiert obligatoirement une identification : username, password):

Code :
ftp://e12345.ovh.net/www/DirTest/Test.txt
--> lorsque je veux que tu y accèdes (ou n'importe qui) sans taper de mot de passe :

Code :
http://e12345.ovh.net/~username/DirTest/Test.txt

Donc la fonction :

"DownloadFile" ne peut pas utiliser le protocole FTP si tu veux évité d'être invité à taper ton MDP et username.


Je pense que ton problème se situe au niveau du FTP.

A tout hasard, ton pare feu sur ton PC est activé ?? Tu n'as pas de règles sur le port 21 ??
wallace1 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/01/2013, 16h53   #17
kitcarflo
Candidat au titre de Membre du Club
 
Homme
Inscription : avril 2008
Messages : 46
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 26
Localisation : France

Informations forums :
Inscription : avril 2008
Messages : 46
Points : 11
Points : 11
Avec tout ce que tu dit on est d'accord., J'ai un pare feu activé normal, mais j'ai pas testé en le désactivant. Sinon apparement oui il n'y a rien sur le port 21
kitcarflo est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/01/2013, 17h14   #18
wallace1
Membre habitué
 
Homme
Administrateur systèmes et réseaux
Inscription : octobre 2008
Messages : 62
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations professionnelles :
Activité : Administrateur systèmes et réseaux
Secteur : Aéronautique - Marine - Espace - Armement

Informations forums :
Inscription : octobre 2008
Messages : 62
Points : 139
Points : 139
Je ne sais que te dire de plus.....o_O

Il faut que tu creuses du côté de ce qui fonctionne le mieux pour le moment c'est ç-à-dire la 1ère solution que je t'ai proposé... tu as le fichier donc maintenant il faut tester avec d'autres fichiers + ou - volumineux si ca ne fonctionne tjrs pas ...

Bon courage.
wallace1 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/01/2013, 17h43   #19
kitcarflo
Candidat au titre de Membre du Club
 
Homme
Inscription : avril 2008
Messages : 46
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 26
Localisation : France

Informations forums :
Inscription : avril 2008
Messages : 46
Points : 11
Points : 11
Merci, je vais voir ce que je peux faire.
kitcarflo est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/01/2013, 01h59   #20
kitcarflo
Candidat au titre de Membre du Club
 
Homme
Inscription : avril 2008
Messages : 46
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 26
Localisation : France

Informations forums :
Inscription : avril 2008
Messages : 46
Points : 11
Points : 11
Citation:
Envoyé par kitcarflo Voir le message
J'ai décidé de changer de méthode.

J'ai créer un lien sur un site internet. Quand on clique dessus, sa nous télécharge le fichier.

Tous cela pour utiliser ceci :

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
Imports System.IO
 
Public Class Form1
    Dim directory As String = "C:\test.csv"
    Private Sub Button1_Click(sender As System.Object, e As System.EventArgs) Handles Button1.Click
        If File.Exists(directory) Then
            MsgBox("Le fichier existe sur l'ordinateur", 64, "Erreur")
            Exit Sub
        Else
            My.Computer.Network.DownloadFile("http://www.monsite.fr/test.csv", directory)
            MsgBox("fichier telechargé", 64, "good")
        End If
    End Sub
End Class
!!! Attention !!! www.monsite.fr est un nom de site faux. Je ne peut pas donner ici le vrai nom du site pour des questions de confidentialité.

Le problème qu'il m'arrive lorsque je lance le prog.
Une exception s'est produite lors d'une requête WebClient.


Avez-vous une idée ?
j'ai un début d'élément de réponse,,

Citation:
L'exception WebException n'a pas été gérée
Une exception s'est produite lors d'une requête Webclient
en regardant ici http://msdn.microsoft.com/fr-fr/libr...(v=vs.80).aspx

On peut voir que WebExecption arrive dans le cas ou "Le site Web refuse la demande "


en modifiant le code comme-ci.
Code :
1
2
3
4
5
Try
            My.Computer.Network.DownloadFile("http://www.mfprog.fr/test.csv", "C:\test.csv", "anonymous", "")
        Catch ex As Exception
            MsgBox(ex.ToString)
        End Try
voici l'érreur générer : http://www.casimages.com/img.php?i=1...1959420463.png





Pas plus d'info ....
kitcarflo est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Cette discussion est résolue.
Outils de la discussion

Navigation rapide


Fuseau horaire GMT +2. Il est actuellement 10h18.


 
 
 
 
Partenaires

Hébergement Web