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

VB.NET Discussion :

Upload fichier en ligne


Sujet :

VB.NET

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Mai 2016
    Messages
    147
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Vendée (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Mai 2016
    Messages : 147
    Par défaut Upload fichier en ligne
    Bonjour,

    J'ai créé un logiciel WinForm que j'ai connecté à une base de données en ligne sur un hébergeur.
    Dans ce logiciel, j'ai créer un module, une bibliothèque de fichier.

    J'aimerais depuis ce module envoyer des fichiers PDF, Word etc. sur mon hébergeur en ligne.

    Puis ensuite de les ouvrir mais ça je devrais y arriver avec des liens sans soucis.

    Le problème c'est comment envoyer un fichier sur mon hébergeur ?

    J'ai créé un bouton OpenFileDialog ensuite j'arrive à récupérer le chemin du fichier mais je ne vois pas comment l'envoyer. J'ai réussi en asp mais en WinForm je ne trouve pas.

    Une personne l'a déjà fait ?

  2. #2
    Membre Expert Avatar de jopopmk
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2011
    Messages
    1 856
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2011
    Messages : 1 856
    Par défaut
    Salut,

    as-tu essayé la méthode UploadFile de la classe WebClient ?

  3. #3
    Membre confirmé
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Mai 2016
    Messages
    147
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Vendée (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Mai 2016
    Messages : 147
    Par défaut
    Ok je vais essayer de me pencher la dessus et je te tiens au courant si j'ai réussi.

  4. #4
    Membre confirmé
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Mai 2016
    Messages
    147
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Vendée (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Mai 2016
    Messages : 147
    Par défaut
    J'ai fait ceci pour le moment mais sans succès

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
      Dim lieu_fichier As String = "http://***/***/bibliotheque/fichier/"
                Dim fichier As String = OpenFileDialog1.FileName
                Dim myWebClient As New WebClient()
                Dim responseArray As Byte() = myWebClient.UploadFile(lieu_fichier, fichier)
    Erreur :

    Une exception non gérée du type 'System.Net.WebException' s'est produite dans System.dll

    Informations supplémentaires : Le serveur distant a retourné une erreur : (405) Méthode non autorisée.

  5. #5
    Membre confirmé
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Mai 2016
    Messages
    147
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Vendée (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Mai 2016
    Messages : 147
    Par défaut
    Sinon en ftp ?
    Parce que la c'est évidement que j'ai pas d'autorisation sans identifiant et mot de passe..

    Si une personne connait le moyen

  6. #6
    Membre confirmé
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Mai 2016
    Messages
    147
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Vendée (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Mai 2016
    Messages : 147
    Par défaut
    Oui c'est une bonne idée !

    Du coup j'ai fait en ftp :

    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
                Dim envoie As Boolean = FtpUpload(New Uri("ftp://****"),
                         New NetworkCredential("utilisateur", "pass"),
                         New FileInfo(OpenFileDialog1.FileName))
     
        Public Shared Function FtpUpload(ByVal uri As Uri, ByVal credentials As NetworkCredential, ByVal 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
    Merci

  7. #7
    Membre Expert Avatar de jopopmk
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2011
    Messages
    1 856
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2011
    Messages : 1 856
    Par défaut
    Tu peux associer un credential à ton WebClient pour l'authentification
    En HTTP tu peux tenter de préciser la méthode d'envoi (POST) avec la variante UploadFile(string, string, string).
    En FTP, si tu utilises cette fonction, il faudra préciser la méthode "STORE".

    Ah, et pour le premier paramètre je me demande s'il ne faut pas passer l'URI de la ressource à créer, pas seulement le répertoire
    (ex. "http://monserveur.fr/monfolder/newfile.ext" et pas juste "http://monserveur.fr/monfolder/"), à vérifier.

    edit : pour ajouter un credential à ta requête, tu peux faire comac :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    monWebClient.Credentials = new System.Net.NetworkCredential(user, pass);

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

Discussions similaires

  1. Upload de fichier en ligne de commande
    Par xian21 dans le forum Shell et commandes GNU
    Réponses: 3
    Dernier message: 09/07/2008, 10h09
  2. Réponses: 3
    Dernier message: 02/09/2004, 11h26
  3. [servlet]Upload Fichier su serveur
    Par mathk dans le forum Servlets/JSP
    Réponses: 4
    Dernier message: 21/04/2004, 10h24
  4. [Struts][Oracle]Upload fichier word dans une base
    Par Maximil ian dans le forum Struts 1
    Réponses: 7
    Dernier message: 10/02/2004, 15h52
  5. Réponses: 2
    Dernier message: 26/09/2003, 14h51

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