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

Silverlight Discussion :

File Upload et recuperation de fichiers/dossier


Sujet :

Silverlight

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Mars 2009
    Messages
    31
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2009
    Messages : 31
    Par défaut File Upload et recuperation de fichiers/dossier
    Bonjour a tous,

    Voila j'ai une page sur laquelle je fais envoyer des fichiers .jpeg dans le dossier App_Data (donc coté .Web).

    Tout marche, ce qui est déjà bien. Pour l'envoi j'utilise un script pris sur internet (ici) qui utilise un WebClient.

    Ok, sauf que maintenant, si je souhaite lister mes dossier présent dans App_Data ou lire u fichier particulier a l'intérieur suis-je oblige d'utiliser un WebClient ?

  2. #2
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Paris (Île de France)

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

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Par défaut
    Citation Envoyé par azerto00 Voir le message
    Ok, sauf que maintenant, si je souhaite lister mes dossier présent dans App_Data
    A partir du client ? ce n'est pas possible, à moins que le serveur autorise le listing du répertoire, ce qui habituellement n'est pas le cas.

    Pour récupérer un fichier dans ce répertoire, tu peux utiliser un WebClient (c'est la solution la plus simple), mais ça ne fonctionnera que si la configuration du serveur autorise l'accès à ce répertoire par le client, ce qui n'est pas le cas par défaut (heureusement d'ailleurs, vu que le répertoire App_Data contient généralement des bases de données...)

    D'ailleurs, dans l'exemple que tu cites, tu remarqueras que le client n'accède pas directement au répertoire, mais passe par un handler HTTP sur le serveur. Il faut faire pareil pour le download : implémenter côté serveur un handler qui envoie le fichier (et un autre pour lister le contenu du répertoire)

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Mars 2009
    Messages
    31
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2009
    Messages : 31
    Par défaut
    Bonjour , merci pour ta réponse.
    J'ai avance dans mon problème. J'ai fait 2 generic handler, un qui s'occupe de recupurer un fichier et l'autre qui doit me renvoyer une List<String>.

    Bon mon probleme, C'est que je récupère la Liste sérialise dans la méthode
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    c.DownloadStringCompleted += (sender, e) => liste = RecupereListSerialise(e);
    Et le soucis, c'est que je veux attendre que ma liste soir remplis par cette methode avant d'aller plus loin (car je souhaite la retourner).

    J;'ai parcouru internet et c'est pas la premiere fois qu'on pose cette question sur les forum francais et anglais, cependant je n'ai reussi avec aucune method. Je me perds dans les threads et avec un truc du genre
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    static AutoResetEvent s_sync = new AutoResetEvent(false);
    ...
    ben sa avance pas et l'appli reste bloque.

    Alors voici le code qui appel mon generic handler :
    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
    public List<string> ListageDesRepertoires()
            {
                List<string> liste = null; 
                UriBuilder ub = new UriBuilder("http://localhost:58578/ListageRepertoire.ashx");
     
                WebClient c = new WebClient();
                c.DownloadStringCompleted += (sender, e) => liste = RecupereListSerialise(e);       
                c.DownloadStringAsync(ub.Uri); 
     
    // ICI je souhaite ATTENDRE QUE LA LISTE SOIT != NULL avant d'aller plus loin
     
                return (liste);
            }
     
     
            private List<string> RecupereListSerialise(DownloadStringCompletedEventArgs e)
            {
                List<string> liste;
                Serialisation serilisation = new Serialisation();
                string ObjetSerialise = e.Result;
                liste = serilisation.Deserialize<List<string>>(ObjetSerialise);
     
                return (liste);
            }
    SVP guidez moi !!

  4. #4
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Paris (Île de France)

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

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Par défaut
    Citation Envoyé par azerto00 Voir le message
    // ICI je souhaite ATTENDRE QUE LA LISTE SOIT != NULL avant d'aller plus loin
    Tu ne peux pas faire ça en Silverlight (enfin tu peux, mais tu es fortement encouragé à ne pas le faire). Ce n'est pas pour rien que seules les méthodes asynchrones du WebClient sont disponibles : c'est pour éviter de bloquer l'interface graphique.

    Qu'est-ce que tu vas faire avec cette liste de fichiers ? L'afficher dans l'interface ? Tu peux le faire dans le DownloadStringComplete, avec un Dispatcher.Invoke pour revenir sur le thread de l'interface

Discussions similaires

  1. [2.x] File upload fichier non trouvé
    Par massacreur dans le forum Symfony
    Réponses: 8
    Dernier message: 11/07/2012, 10h50
  2. Réponses: 9
    Dernier message: 01/06/2012, 22h33
  3. Réponses: 1
    Dernier message: 10/06/2009, 13h05
  4. [Upload] file Upload: mettre un fichier sur le serveur
    Par eseb777 dans le forum Langage
    Réponses: 4
    Dernier message: 07/03/2007, 10h01
  5. Réponses: 13
    Dernier message: 15/08/2006, 01h33

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