none
(Visual Studio 2008) Upload d'un fichier RRS feed

  • Question

  • Bonjour,

    Voici le code que j'utilise pour envoyer un fichier sur un site

    My.Computer.Network.UploadFile("C:/Fichier.txt", "http://LeSite/Dossier/Nomfic" ,"Identifiant", "Password", True, 20000)

    Le problème est que si le fichier n'existe pas, cas de la première fois, j'ai une erreur (par WebException) : Le serveur distant a retourné une erreur : (404) Introuvable.

    Comment faire ?

    MERCI


    Cordialement SC

    dimanche 16 août 2015 09:39

Réponses

  • Ok. D'après la documentation sur la méthode que vous utilisez, celle-ci s'attend à recevoir l'adresse d'une page web et pas le nom d'un fichier directement.

    Voici un lien vers un exemple de client FTP en .Net. : Client FTP

    Le code utilise une autre technique à travers d'autres classes mais je pense que ce sera plus approprié à votre situation. Il est en C#, la syntaxe est différente mais le nom des méthodes sont les mêmes.


    lundi 17 août 2015 06:32

Toutes les réponses

  • Bonjour,

    Vérifiez d'abord si le fichier "c:\Fichier.Txt" existe au moins de System.IO.File.Exists(path vers le fichier) qui renvoie true s'il existe ou false dans le cas contraire. Si c'est false, vous ne devez pas tenter l'upload.


    • Modifié V HELLIN lundi 17 août 2015 05:58
    lundi 17 août 2015 05:58
  • J'ai du mal m'exprimer ...

    Le fichier sur le PC existe

    C'est quand il n'existe pas sur le site que j'ai cette erreur

    Si je le transfer par FILEZILLA et que je retente l'UPLOAD, je n'ai plus d'erreur

    Si je le supprime, par FILEZILLA et que je retente l'UPLOAD, j'ai de nouveau l'erreur

    C'est quand le fichier n'existe pas sur le site que j'ai cette erreur

    Pourquoi ? 


    Cordialement SC

    lundi 17 août 2015 06:14
  • Ok. D'après la documentation sur la méthode que vous utilisez, celle-ci s'attend à recevoir l'adresse d'une page web et pas le nom d'un fichier directement.

    Voici un lien vers un exemple de client FTP en .Net. : Client FTP

    Le code utilise une autre technique à travers d'autres classes mais je pense que ce sera plus approprié à votre situation. Il est en C#, la syntaxe est différente mais le nom des méthodes sont les mêmes.


    lundi 17 août 2015 06:32
  • Merci,

    J'ai trouvé ceci sur le net. Cela reprend surement votre exemple

                    ' My.Computer.Network.UploadFile(sourceFileName ,address ,networkCredentials ,showUI ,connectionTimeout ,onUserCancel)
                    '        sourceFileName()
                    '        String.Chemin(d) 'accès et nom du fichier à transférer. Obligatoire. 
                    '        address()
                    'String ou Uri URL, adresse IP ou URI du serveur de destination. Obligatoire. 
                    'doit être de la forme : "ftp://login:pass@Votre_serveur.com/Dossier/fichier_uploader.txt" 
                    '        login()
                    '        String.Nom(d) 'utilisateur pour authentification. La valeur par défaut est une chaîne vide : "".
                    '        pass()
                    'String. Mot de passe pour authentification. La valeur par défaut est une chaîne vide : "".
                    '        showUI()
                    'Boolean. Si besoin d'afficher l'avancement de l'opération. La valeur par défaut est False. 
                    '        connectionTimeout()
                    'Int32. Intervalle de délai en millisecondes. La valeur par défaut est de 100 secondes.
                    '        onUserCancel()
                    'UICancelOption. Mesures à prendre lorsque l'utilisateur clique sur Annuler. La valeur par défaut est ThrowException.
                    'networkCredentials()
                    'ICredentials.Informations(d) 'identification pour l'authentification.
                    '
                    'Const wFTP As String = "ftp://user:password6@site/dossier destination/"
                    'My.Computer.Network.UploadFile(fichier à transférer, wFTP & wNomRep & "/" & wNomFic, "", "", True, 500)

    Ce qui donne :

     Dim SavDest As String = ftp://USER:PASSWORD@NOM SITE/DOSSIER/ '   La destination sur le site
     My.Computer.Network.UploadFile(Fichier à transférer, SavDest & Nom fichier sur site,"USER", "PASSWORD", True, 20000)
    Maintenant, que le fichier soit sur le site ou non, l'UPLOAD fonctionne


    Cordialement SC


    lundi 17 août 2015 07:17