IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

ASP.NET Discussion :

Problème d'envoi de fichiers par FTP


Sujet :

ASP.NET

  1. #1
    Débutant   Avatar de SonnyFab
    Étudiant
    Inscrit en
    Mai 2010
    Messages
    498
    Détails du profil
    Informations personnelles :
    Âge : 33

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2010
    Messages : 498
    Points : 213
    Points
    213
    Par défaut Problème d'envoi de fichiers par FTP
    Bonsoir, Alors là j'ai un problème sérieux.

    J'ai des fonctions qui, selon moi, récupère un fichier sur mon ordinateur et l'envoie par FTP sur un server. (Notons que je developpe en asp.net et vb.net)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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
       <script language= "vb" runat= "server" > 
     
       Public Shared Function FtpUpload(uri As Uri, credentials As NetworkCredential, fileInfo As FileInfo) As Boolean
     
    	Dim request As FtpWebRequest = DirectCast(FtpWebRequest.Create(Path.Combine(uri.AbsoluteUri, fileInfo.Name)), FtpWebRequest)
    	request.Method = WebRequestMethods.Ftp.UploadFile
    	request.Credentials = credentials
    	request.UseBinary = True
    	request.KeepAlive = False
    	request.UsePassive = True
     
    	Dim buffer As Byte() = New Byte(2047) {}
     
    	Using stream As Stream = request.GetRequestStream()
    		Using fs As FileStream = File.OpenRead(fileInfo.FullName)
    			Dim block As Integer
    			While (block = fs.Read(buffer, 0, buffer.Length)) > 0
    				stream.Write(buffer, 0, block)
    			End While
    		End Using
    	End Using
    	Return True
    End Function
     
    Public Sub Page_load(ByVal sender As Object, ByVal e As System.EventArgs)
     
    	FtpUpload(New Uri("ftp://*.*.*.*"), New NetworkCredential("toto", "tata"), New FileInfo("C:\Inetpub\wwwroot\Sonny.txt"))
    end sub
    Le problème est que le fichier est vide à l'arrivée sur le server.
    Celui-ci part bien mais je sais pas pourquoi il est vide.
    Après des tests je me suis rendu compte que c'était exactement le fichier en question qu'il envoyait (ou qu'il copiait je sais pas...)

    Merci d'avance
    C'est quand tout semble perdu qu'il ne faut jamais abandonner...

  2. #2
    Expert éminent
    Avatar de Immobilis
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Mars 2004
    Messages
    6 559
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Mars 2004
    Messages : 6 559
    Points : 9 506
    Points
    9 506
    Par défaut
    Salut,

    Avec cette fonction tu NE PEUX PAS envoyer un fichier du client (interenaute) vers le serveur.

    Le code qui figure entre des tag server n'est JAMAIS exécuté par un navigateur web.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <script language= "vb" runat= "server" >
    A+
    "Winter is coming" (ma nouvelle page d'accueil)

  3. #3
    Débutant   Avatar de SonnyFab
    Étudiant
    Inscrit en
    Mai 2010
    Messages
    498
    Détails du profil
    Informations personnelles :
    Âge : 33

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2010
    Messages : 498
    Points : 213
    Points
    213
    Par défaut
    Merci Immobilis, mais alors t'aurais pas une solution pour moi?
    J'ai tenté la solution FILEZILLA mais on m'a demandé que cela se fasse dynamiquement depuis l'application!

    Dois-je enlever les quotes "server"?
    C'est quand tout semble perdu qu'il ne faut jamais abandonner...

  4. #4
    Expert éminent
    Avatar de Immobilis
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Mars 2004
    Messages
    6 559
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Mars 2004
    Messages : 6 559
    Points : 9 506
    Points
    9 506
    Par défaut
    Citation Envoyé par SonnyFab Voir le message
    J'ai tenté la solution FILEZILLA mais on m'a demandé que cela se fasse dynamiquement depuis l'application!
    On avance...
    Je m'en doutais un peu, mais vu le peu de détails que tu donnes... De plus, je préférais que tu le comprennes toi-même après que les personnes qui te demandent de faire ce travail te l'ai exprimé aussi.

    Une seule solution: le composant FileUpload. Je crois que tu as tous les liens nécessaires pour faire des recherches. Non?

    A+
    "Winter is coming" (ma nouvelle page d'accueil)

  5. #5
    Débutant   Avatar de SonnyFab
    Étudiant
    Inscrit en
    Mai 2010
    Messages
    498
    Détails du profil
    Informations personnelles :
    Âge : 33

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2010
    Messages : 498
    Points : 213
    Points
    213
    Par défaut
    J'ai beaucoup lu sur la rélation client/server.
    Voila, l'application est hébergée sur le server1 (encore merci ), celle-ci se connecte à une base de donnée hébergée sur un autre server2 et crée un fichier dans son disque dur (server1) à partir des informations receuillies dans la base de donnée.

    La partie de mon code prend se fichier (server1) et l'envoie vers un autre server3 par FTP.

    Le client ne voit pas ce qui se passe, il s'est contenté de cliquer sur un bouton. Pour moi tous se passe sur le server, normalement sa derait passer!!? De plus, je retrouve le fichier envoié sur le server3, mais celui-ci est vide !

    Merci de m'éclaircir... (Grace à toi j'ai fais des progrès coté sever )
    C'est quand tout semble perdu qu'il ne faut jamais abandonner...

  6. #6
    Expert éminent
    Avatar de Immobilis
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Mars 2004
    Messages
    6 559
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Mars 2004
    Messages : 6 559
    Points : 9 506
    Points
    9 506
    Par défaut
    Citation Envoyé par SonnyFab Voir le message
    J'ai beaucoup lu sur la rélation client/server.
    Voila, l'application est hébergée sur le server1 (encore merci ), celle-ci se connecte à une base de donnée hébergée sur un autre server2 et crée un fichier dans son disc dur (server1).

    La parite de mon code prend se fichier (server1) et l'envoie vers un autre server3 par FTP.
    Ce serait bien de commencer par là. Donne des détails sur ce qui se passe et le fonctionnement de ton application. Un problème de Maths ne commence pas par la question. Il faut exposer le problème.

    Citation Envoyé par SonnyFab Voir le message
    Le client ne voit pas ce qui se passe, il s'est contenté de cliquer sur un bouton.
    Est-ce que cette première étape fonctionne?
    "Winter is coming" (ma nouvelle page d'accueil)

  7. #7
    Débutant   Avatar de SonnyFab
    Étudiant
    Inscrit en
    Mai 2010
    Messages
    498
    Détails du profil
    Informations personnelles :
    Âge : 33

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2010
    Messages : 498
    Points : 213
    Points
    213
    Par défaut
    Prépare toi à voir de la... programmation spaghetti !

    Ok reprenons notre sérieux, lors d'un clic le client appelle cette page (ceci est un bout de code):
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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
    chemin= "C:\Inetpub\wwwroot\MonFichier.txt"
     
    'Création de fichier '
     
          If Not IO.File.Exists(chemin) Then
                '*** Création d un fichier vide.'
                Dim fs As IO.FileStream
                fs = IO.File.Create(chmin)
                fs.Close()
     
                Using sw As IO.StreamWriter = New IO.StreamWriter(chmin)
     
                sw.WriteLine("Liste des numéros")
     
               ' Etablissement de la Connection'
                Dim strConnection as String = "user id=Sonny;password=Immobilis;" 
                strConnection += "database=MaBase;server=toto;" 
                strConnection += "Connect Timeout=30" 
    	        Dim Conn as New SqlConnection ( strConnection ) 
    	        Conn.Open () 
     
                'Exécution dune requête SELECT'
                Dim Comm As New SqlCommand("select mobile from Numeros", Connection1)
       Dim TheReader As SqlDataReader = Comm.ExecuteReader()
     
    	while  TheReader.Read()
     
            sw.WriteLine("")     
            sw.Write(TheReader(0))
            sw.WriteLine("")
     
                    End While
    	   Thereader.Close()
    	   conn.Close()		   
                     sw.Close()
                       End Using
           End If
    'Envoie du chemin vers la page 2'
     Response.Redirect("Page2.aspx?tempVal="+chmin+"",true)
    Dans la page2.aspx on envoie le fichier par FTP vers le server 3
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Public Sub Page_load(ByVal sender As Object, ByVal e As System.EventArgs)
     
    	Dim temp As String = Request.Querystring("tempVal")
     
    	FtpUpload(New Uri("ftp://*.*.*.*"), New NetworkCredential("Immobilis", "SonnyFab"), New FileInfo(temp))
    end sub
    La fonction FtpUpload tu l'as en haut de la discussion.
    Eh ben voilà en espérant avoir mis tout les détails.
    Je rappel que le fichier est crée et rempli après l'exécution de la page1 mais après la page2 je retrouve le fichier sur le server3 envoié par FTP mais celui-ci est vide à l'arrivée!
    Merci encore
    C'est quand tout semble perdu qu'il ne faut jamais abandonner...

  8. #8
    Expert éminent
    Avatar de Immobilis
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Mars 2004
    Messages
    6 559
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Mars 2004
    Messages : 6 559
    Points : 9 506
    Points
    9 506
    Par défaut
    Euuh, bon, pour le moment je ne commenterai pas le code. On verra ça plus tard parce que tu fais beaucoup de confusions.

    Pourquoi envoyer le fichier sur un server3?

    Tu ne veux pas envoyer le fichier au client??
    "Winter is coming" (ma nouvelle page d'accueil)

  9. #9
    Débutant   Avatar de SonnyFab
    Étudiant
    Inscrit en
    Mai 2010
    Messages
    498
    Détails du profil
    Informations personnelles :
    Âge : 33

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2010
    Messages : 498
    Points : 213
    Points
    213
    Par défaut
    On verra ça plus tard parce que tu fais beaucoup de confusions.
    Alors là je suis pas sorti de l'auberge!
    Tu ne veux pas envoyer le fichier au client??
    Non cette fois-ci je veux l'envoyer sur un server afin qu'il soit pris en charge par un script pour... (On va dire que t'as compris parceque cette partie est tellement technique pour moi, du coup je me contente de l'envoyer) Encore faut-il réussir, c'est là où j'ai besoin de toi enfait, le fichier est vide à l'arrivée sur le server
    C'est quand tout semble perdu qu'il ne faut jamais abandonner...

  10. #10
    Expert éminent
    Avatar de Immobilis
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Mars 2004
    Messages
    6 559
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Mars 2004
    Messages : 6 559
    Points : 9 506
    Points
    9 506
    Par défaut
    Dans ces cas là procède par ordre.

    Est-ce que simplement l'envoi d'un fichier fonctionne? Créés un fichier toi-même. Ecris "Hello world" dedans et envoie le avec juste
    Code vb : Sélectionner tout - Visualiser dans une fenêtre à part
    FtpUpload(New Uri("ftp://*.*.*.*"), New NetworkCredential("Immobilis", "SonnyFab"), New FileInfo("C:\Inetpub\wwwroot\MonFichier.txt"))
    "Winter is coming" (ma nouvelle page d'accueil)

  11. #11
    Débutant   Avatar de SonnyFab
    Étudiant
    Inscrit en
    Mai 2010
    Messages
    498
    Détails du profil
    Informations personnelles :
    Âge : 33

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2010
    Messages : 498
    Points : 213
    Points
    213
    Par défaut
    Ben tu me connais assez debrouillard pour ça!
    Ouais j'a fais sa et l'envoie fonctionne très bien , mais comme je n'arrête pas dire.. heu d'écrire, le fichier arrive vide!
    C'est quand tout semble perdu qu'il ne faut jamais abandonner...

  12. #12
    Débutant   Avatar de SonnyFab
    Étudiant
    Inscrit en
    Mai 2010
    Messages
    498
    Détails du profil
    Informations personnelles :
    Âge : 33

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2010
    Messages : 498
    Points : 213
    Points
    213
    Par défaut
    Je me suis dit esqu'il n'ya pas de paramètres (ou quelque chose de se genre) que j'aurais oublié d'écrire qui permet de préciser à la fonction de copier tout le texte dans le fichier?
    Ou lors de l'envoie, d'activer un parmètre qui permet de conserver le texte?
    C'est quand tout semble perdu qu'il ne faut jamais abandonner...

  13. #13
    Expert éminent
    Avatar de Immobilis
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Mars 2004
    Messages
    6 559
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Mars 2004
    Messages : 6 559
    Points : 9 506
    Points
    9 506
    Par défaut
    Citation Envoyé par SonnyFab Voir le message
    Ben tu me connais assez debrouillard pour ça!
    Ouais j'a fais sa et l'envoie fonctionne très bien , mais comme je n'arrête pas dire.. heu d'écrire, le fichier arrive vide!
    Je ne comprend pas le fichier arrive vide ou il y a "hello world" dedans?
    "Winter is coming" (ma nouvelle page d'accueil)

  14. #14
    Débutant   Avatar de SonnyFab
    Étudiant
    Inscrit en
    Mai 2010
    Messages
    498
    Détails du profil
    Informations personnelles :
    Âge : 33

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2010
    Messages : 498
    Points : 213
    Points
    213
    Par défaut
    Pour arriver ah sa je te le confirme il arrive bien sur le server! (Un fichier malin)
    Mais pour le contenu il est vide! Je sais pas pourquoi!

    J'espère que mon tempérant ne vous (ainsi qu'aux autres membres) fruste pas trop, c'est j'aime bien garder le sourire!
    C'est quand tout semble perdu qu'il ne faut jamais abandonner...

  15. #15
    Expert éminent
    Avatar de Immobilis
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Mars 2004
    Messages
    6 559
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Mars 2004
    Messages : 6 559
    Points : 9 506
    Points
    9 506
    Par défaut
    Répondre par oui ou par non
    1. Tu créés un fichier text avec "hello world" dedans
    2. Tu utilises la fonction
      Code : Sélectionner tout - Visualiser dans une fenêtre à part
      FtpUpload(New Uri("ftp://*.*.*.*"), New NetworkCredential("Immobilis", "SonnyFab"), New FileInfo(temp))
      avec les identifiants nécessaires pour envoyer le fichier sur le serveur3
    3. Le fichier est créé sur le serveur3
    4. Le fichier sur le serveur3 est vide
    5. Le compte que tu utilises pour envoyer le fichier sur le serveur3 peut modifier le fichier.
    6. Tu n'utilises toujours pas Visual studio express
    "Winter is coming" (ma nouvelle page d'accueil)

  16. #16
    Débutant   Avatar de SonnyFab
    Étudiant
    Inscrit en
    Mai 2010
    Messages
    498
    Détails du profil
    Informations personnelles :
    Âge : 33

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2010
    Messages : 498
    Points : 213
    Points
    213
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    For x = 1 to 5
       afficher.Text="Oui"
    Next
    6.Tu n'utilises toujours pas Visual studio express
    Non j'utilise DreamWeaver 8.0, Notepad++ et le server IIS est activé
    C'est quand tout semble perdu qu'il ne faut jamais abandonner...

  17. #17
    Débutant   Avatar de SonnyFab
    Étudiant
    Inscrit en
    Mai 2010
    Messages
    498
    Détails du profil
    Informations personnelles :
    Âge : 33

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2010
    Messages : 498
    Points : 213
    Points
    213
    Par défaut
    Voila Immobilis, j'ai envoyé (Pour tester la connexion) depuis l'invite de commande, un fichier et c'est bien arrivé et rempli de donnée.

    Là je pense que c'est mon code
    C'est quand tout semble perdu qu'il ne faut jamais abandonner...

  18. #18
    Expert éminent
    Avatar de Immobilis
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Mars 2004
    Messages
    6 559
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Mars 2004
    Messages : 6 559
    Points : 9 506
    Points
    9 506
    Par défaut
    Citation Envoyé par SonnyFab Voir le message
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    For x = 1 to 5
       afficher.Text="Oui"
    Next

    Citation Envoyé par SonnyFab Voir le message
    Non j'utilise DreamWeaver 8.0, Notepad++ et le server IIS est activé
    Vraiment dommage car le déboguer est vraiment pratique...

    Tu penses que c'est ton code?

    Qu'est-ce que cela donne si tu fais une page web avec juste la fonction FTP dans le page_load avec tous les paramètres en dur?
    Code vb : Sélectionner tout - Visualiser dans une fenêtre à part
    FtpUpload(New Uri("ftp://*.*.*.*"), New NetworkCredential("Immobilis", "SonnyFab"), New FileInfo("C:\Temp\Test.txt"))
    Il faut faire attention au fait que si tu passes un chemin physique dans l'URL les caractères spéciaux peuvent être mal interprétés.
    "Winter is coming" (ma nouvelle page d'accueil)

  19. #19
    Débutant   Avatar de SonnyFab
    Étudiant
    Inscrit en
    Mai 2010
    Messages
    498
    Détails du profil
    Informations personnelles :
    Âge : 33

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2010
    Messages : 498
    Points : 213
    Points
    213
    Par défaut
    Il faut faire attention au fait que si tu passes un chemin physique dans l'URL les caractères spéciaux peuvent être mal interprétés
    !
    Qu'est-ce que cela donne si tu fais une page web avec juste la fonction FTP dans le page_load avec tous les paramètres en dur?
    La même chose, c'est vraiment capricieux!
    Tu penses que c'est ton code?
    Enfait puisque c'est le même fichier qu'il envoie, je me dis juste y'a un truc que j'ai omis d'écrire qui permet de de dire à la fonction de récupérer aussi les informations contenues dans le fichier, enfin c'est juste ce que je pense!
    Bon je vais continuer de chercher, merci encore de te pencher sur mon problème c'est vraiment motivant.
    C'est quand tout semble perdu qu'il ne faut jamais abandonner...

  20. #20
    Expert éminent
    Avatar de Immobilis
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Mars 2004
    Messages
    6 559
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Mars 2004
    Messages : 6 559
    Points : 9 506
    Points
    9 506
    Par défaut
    Bon, y'a un truc que je ne pige pas. Ma fonction FtpUpload fonctionne très bien en C# mais en VB pas du tout.
    N'étant pas un spécialiste VB je ne peux pas te dire d'emblée ce qui cloche...
    "Winter is coming" (ma nouvelle page d'accueil)

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 2 12 DernièreDernière

Discussions similaires

  1. [JSch] probleme d'envoi de fichier par ftp
    Par jerem721 dans le forum Entrée/Sortie
    Réponses: 5
    Dernier message: 08/05/2009, 12h39
  2. Envoi de fichier par FTP mais nommé différent
    Par whorian dans le forum VB.NET
    Réponses: 2
    Dernier message: 08/03/2009, 17h04
  3. Problème de téléchargement de fichier par FTP
    Par Xalex dans le forum Web & réseau
    Réponses: 3
    Dernier message: 01/09/2008, 17h01
  4. Problème de copie de fichier par FTP
    Par tpdm dans le forum AS/400
    Réponses: 3
    Dernier message: 31/07/2008, 15h37
  5. Probleme d'envoi de fichiers par FTP
    Par TheReturnOfMuton dans le forum VB 6 et antérieur
    Réponses: 5
    Dernier message: 10/06/2008, 11h03

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo