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 :

Accéder à un server FTP via mon application


Sujet :

ASP.NET

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

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2010
    Messages : 498
    Par défaut Accéder à un server FTP via mon application
    Bonjour,
    J'ai mon application web montée en asp.net (vb.net) et j'aimerais envoier des fichiers que je créé (depuis cette application) sur un server FTP dont j'ai des passes.
    Mais j'ai aucunes idées (alors là aucunes) des codes de connexions et requetes à impléménter.

    Si quelqu'un connait de bons tutos ou peut me les envoiés sa m'aiderait beaucoup.
    Merci de bien vouloir m'aider...

  2. #2
    Rédacteur

    Avatar de Jean-Michel Ormes
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Juillet 2007
    Messages
    1 838
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Services à domicile

    Informations forums :
    Inscription : Juillet 2007
    Messages : 1 838
    Par défaut
    Salut,

    Peut-être que ceci devrait t'aider.

    @+

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

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2010
    Messages : 498
    Par défaut
    Salut Jean-Michel Ormes, merci pour ton lien il super claire
    Comme je compile avec asp.net j'ai essayé de l'adapter avec mes besoins tout en fesant un copier/coller afin de réaliser un test. Voila la page ne me renvoie pas d'erreurs mais lorsque je vais vérifier sur le server, le fichier n'y s'y trouve pas!
    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
    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
    Ai-je fais une erreur ou ai-je oublié de mentionner quelque chose?
    Merci encore

  4. #4
    Membre éclairé Avatar de SonnyFab
    Étudiant
    Inscrit en
    Mai 2010
    Messages
    498
    Détails du profil
    Informations personnelles :
    Âge : 35

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2010
    Messages : 498
    Par défaut
    Je viens de me rendre compte en fesant un petit test(Il m'afficherait "bonjour" avant de continuer d'executer la fonction page_load() ) que ma page ne rentrais meme pas dans la fonction.

    Et là je comprend pas pourquoi, lorsque je change les arguments:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
      Protected sub Page_load(ByVal sender As Object, ByVal e As System.EventArgs)
     
       Dim cheminSource, urlDestination, identifiant, motDePasse As String
    J'obtiens cette fois-ci une erreur:
    La référence d'objet n'est pas définie à une instance d'un objet.
    Quelqu'un pourrait m'aider s'il vous plait?

  5. #5
    Rédacteur

    Avatar de Jean-Michel Ormes
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Juillet 2007
    Messages
    1 838
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Services à domicile

    Informations forums :
    Inscription : Juillet 2007
    Messages : 1 838
    Par défaut
    Pourquoi t'as tout mis dans le Page_Load ?

    Tu pouvais copier le code tel quel et appeler la fonction à partir du Page_Load tout en passant tes paramètres à ta fonction.

  6. #6
    Membre éclairé Avatar de SonnyFab
    Étudiant
    Inscrit en
    Mai 2010
    Messages
    498
    Détails du profil
    Informations personnelles :
    Âge : 35

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2010
    Messages : 498
    Par défaut
    Ouais je l'ai fais:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     Protected sub uploadFichier(ByVal cheminSource As String, ByVal urlDestination As String, ByVal identifiant As String, ByVal motDePasse As String)
     
    '----------------------'  
     
    sub page_load ()
    	uploadFichier("C:\Inetpub\wwwroot\Newsite.xml" ,"*.*.*.*" ,"bla" ,  "toto" )
    	end sub
    Mais là il y'a toujours une erreur
    La référence d'objet n'est pas définie à une instance d'un objet.

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

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2010
    Messages : 498
    Par défaut
    J'ai repris la fonction que j'ai utilisé dans mon 2ème message (au moins lui il ne renvoie aucune erreur) . Mais je voudrais savoir, pourquoi il ne rentre pas dans la fonction s'il vous plait?

  8. #8
    Membre éclairé Avatar de SonnyFab
    Étudiant
    Inscrit en
    Mai 2010
    Messages
    498
    Détails du profil
    Informations personnelles :
    Âge : 35

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2010
    Messages : 498
    Par défaut
    J'y arrive toujours pas les ami(e)s! J'ai beau tourné mon code dans tous les sens soit j'obtiends aucunes erreurs mais la la page n'execute pas la fonction
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     Sub Page_load (ByVal cheminSource As String, ByVal urlDestination As String, ByVal identifiant As String, ByVal motDePasse As String)
    Soit j'obtiends cette erreur :
    La référence d'objet n'est pas définie à une instance d'un objet.
    avec la fonction
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Page_load(ByVal sender As Object, ByVal e As System.EventArgs),
    Lorsque je declare et initialise les variables passés en paramères précédemment, globales
    Je sais plus

  9. #9
    Rédacteur
    Avatar de lutecefalco
    Profil pro
    zadzdzddzdzd
    Inscrit en
    Juillet 2005
    Messages
    5 052
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : zadzdzddzdzd

    Informations forums :
    Inscription : Juillet 2005
    Messages : 5 052
    Par défaut
    Tu fais n'importe quoi ...
    Tu dois pas modifier la signature de la fonction Page_Load

  10. #10
    Membre éclairé Avatar de SonnyFab
    Étudiant
    Inscrit en
    Mai 2010
    Messages
    498
    Détails du profil
    Informations personnelles :
    Âge : 35

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2010
    Messages : 498
    Par défaut
    D'accord si tu le dis, j'ai trop confiance en toi
    je vais encore essayé tout en gardanr la tete froide et voir ce que sa donne

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

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2010
    Messages : 498
    Par défaut
    Heu exuse moi Lucetefalco, mais c'est la même chose, or lorsque j'enleve cette partie du code:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    ' 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
    La page entre dans la fonction mais s'arrete au niveau du cast
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     ' Requête d upload d un fichier vers le serveur'
                Dim uploadRequest As FtpWebRequest = CType(WebRequest.Create(urlDestination), FtpWebRequest)
    Esque l'erreur ne vient pas au niveau des URI selon toi?

  12. #12
    Expert confirmé
    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
    Par défaut
    Salut,

    En C# y'a ça: http://dotnet.developpez.com/faq/asp...e=transfertftp

    C'est truc que j'ai fait pour récupérer/envoyer des fichiers sur la freebox.

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

  13. #13
    Membre éclairé Avatar de SonnyFab
    Étudiant
    Inscrit en
    Mai 2010
    Messages
    498
    Détails du profil
    Informations personnelles :
    Âge : 35

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2010
    Messages : 498
    Par défaut
    Merci Immobilis sa passe super bien, le fichier est déposé sur le server, ton tutoriel est wahouuu! Félicitation pour ce travail et à toute l'équipe aussi

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    while (1){
    mess.Text="Vous êtes les meilleurs!!! <br/>"
    }

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

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2010
    Messages : 498
    Par défaut Explication
    Juste pour approfondir mes connaissances, si t'as du temps, essaies s'il te plait de m'expliquer un de pourquoi le code en vb.net ne passait pas?
    Je me heurtais sur cette partie:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     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
                err2.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
                err1.Text="Le chemin du fichier sur le serveur FTP n'est pas valide !Une erreur est surevnue"
                Exit Sub
            End If
    Merci encore pour tous ce que vous faites!

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. je peux pas envoyer des emails via mon application
    Par scofild20 dans le forum Réseau
    Réponses: 7
    Dernier message: 20/10/2007, 22h54
  2. Réponses: 9
    Dernier message: 02/01/2007, 12h03
  3. [XML] Lire un fichier uniquement via mon application ?
    Par charliejo dans le forum XML/XSL et SOAP
    Réponses: 2
    Dernier message: 20/01/2006, 16h26
  4. Création d'un alias via mon application
    Par Neilos dans le forum C++Builder
    Réponses: 3
    Dernier message: 18/10/2003, 23h29

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