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

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  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.

+ 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