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 :

Ouvrir un fichier en recuperant le chemin dans une listbox


Sujet :

ASP.NET

  1. #1
    Membre à l'essai
    Homme Profil pro
    Inscrit en
    Mars 2011
    Messages
    36
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mars 2011
    Messages : 36
    Points : 13
    Points
    13
    Par défaut Ouvrir un fichier en recuperant le chemin dans une listbox
    Bonjour

    J'ai une appli en ASP.Net et c# dans lequel y a une listBox qui affiche une liste de fichier. Je voudrais que a chaque fois que l'utilisateur clic sur une ligne de la listbox, le fichier associé a cette ligne s'ouvre.

    Pour cela j'ai essayer le file.Open(path)
    ou StreamRead( path)
    mais aucune de mes methode ne passe et je ne sais pas pourquoi


    Vous avez une idée si vous plais ??

  2. #2
    Membre éclairé Avatar de Ramajb
    Homme Profil pro
    ----------------------------
    Inscrit en
    Septembre 2007
    Messages
    476
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : ----------------------------

    Informations forums :
    Inscription : Septembre 2007
    Messages : 476
    Points : 755
    Points
    755
    Par défaut
    Bonjour,
    file.Open(path)
    ouvre le fichier en mode stream, non pas visuellement.
    As tu plusieurs type de fichier à ouvrir ou un seulement?
    +

  3. #3
    Membre à l'essai
    Homme Profil pro
    Inscrit en
    Mars 2011
    Messages
    36
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mars 2011
    Messages : 36
    Points : 13
    Points
    13
    Par défaut
    Oui mais j'ai essayer avec File.Open(path) et sa m'ouvre rien du tous pourtant si je met label1.Text = path il m'affiche bien le chemin du fichier que je veux ouvrir

    Une idée svp ?

  4. #4
    Inactif  
    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Janvier 2007
    Messages
    6 604
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France

    Informations professionnelles :
    Activité : Chef de projet NTIC

    Informations forums :
    Inscription : Janvier 2007
    Messages : 6 604
    Points : 13 314
    Points
    13 314
    Par défaut
    Citation Envoyé par Alegreg Voir le message
    Oui mais j'ai essayer avec File.Open(path) et sa m'ouvre rien du tous
    Comment le sais tu que ça n'ouvre rien ? il y a une exception levée ? la stream retournée est nulle ?

    Bref, il est urgent d'être un peu plus clair et précis.

  5. #5
    Membre à l'essai
    Homme Profil pro
    Inscrit en
    Mars 2011
    Messages
    36
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mars 2011
    Messages : 36
    Points : 13
    Points
    13
    Par défaut
    Dans mon appli j'ai rajouter un bouton au clic de ce bouton il dois m'ouvrir la piece jointe selectionner

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
     
     String path = (MapPath("~/Document/"));
     Label1.Text = path + ListBox1.SelectedItem.Value;
     
                if (File.Exists(Label1.Text))
                {
                      File.Open(Label1.Text, FileMode.Open, FileAccess.Read);
                      Label7.Text = "ok";
                }
                else 
                {
                       Label7.Text = "Cette piece jointe est introuvable";
                }

    Et donc quand je test ma piece jointe ne souvre pas, mais il rentre pas das le else. Mon label 7 affiche bien le "ok"

    Mon Label1 lui affiche bien le chemin de ma piece jointe

    Je vois pas pourquoi le file.Open ne fais rien


    Sinon désolé j'ai oublier de repondre, oui j'aurais plusieurs document qui pourront être des .doc, .pdf, .xls en general mais pour l'instant j'oblige pas l'utilisateur a mettre des fichiers precis

  6. #6
    Membre éclairé Avatar de Ramajb
    Homme Profil pro
    ----------------------------
    Inscrit en
    Septembre 2007
    Messages
    476
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : ----------------------------

    Informations forums :
    Inscription : Septembre 2007
    Messages : 476
    Points : 755
    Points
    755
    Par défaut
    Y a une chose que je ne comprend pas. En gros tu veux télécharger depuis le serveur le "fichier" sélectionné dans ton ListBox??.

    A+

  7. #7
    Membre à l'essai
    Homme Profil pro
    Inscrit en
    Mars 2011
    Messages
    36
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mars 2011
    Messages : 36
    Points : 13
    Points
    13
    Par défaut
    Oui j'ai toute mes piece jointe qui sont dans un dossier appeller document lui meme dans le dossier de mon application.

    J'ai une liste avec toute les piece jointe qui sont contenue dans document et je voudrais que si l'utilisateur clic selectionne une ligne de ma listbox et qu'il clic sur un bouton " Visualiser" la piece jointe s'ouvre en lecture seul.


    Je ne vois pas pourquoi rien ne s'ouvre alors qu'il recupere bien le bon chemin sa fait un moment que je suis deja est j'ai toujours le meme probleme

  8. #8
    Membre éclairé Avatar de Ramajb
    Homme Profil pro
    ----------------------------
    Inscrit en
    Septembre 2007
    Messages
    476
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : ----------------------------

    Informations forums :
    Inscription : Septembre 2007
    Messages : 476
    Points : 755
    Points
    755
    Par défaut
    Salut,
    Merci pour ton éclaircissement.
    Dans ton code ci-dessus, remplaces la partie suivante
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    File.Open(Label1.Text, FileMode.Open, FileAccess.Read);
    Label7.Text = "ok";
    par
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Response.Clear();
    Response.AddHeader("Content-Disposition","inline;filename="+ ListBox1.SelectedItem.Value);
    Response.ContentType = "application/pdf";
    Response.WriteFile(Server.MapPath(Label1.Text));
    Response.End();
    Dans l'exemple je suppose que
    ListBox1.SelectedItem.Value
    retourne non_du_fichier.pdf i.e avec extension du fichier.
    A noter l'utilisation "inline" car si tu mets "attachement" tu auras la boite de dialogue ouvert avec le bouton open et enregistrer sous.

  9. #9
    Membre à l'essai
    Homme Profil pro
    Inscrit en
    Mars 2011
    Messages
    36
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mars 2011
    Messages : 36
    Points : 13
    Points
    13
    Par défaut
    Salut

    Tous d'abord merci pour ton aide,

    Je voulais savoir si tu pouvais m'apporter un peux plus de renseignement.
    J'ai tester ton code sur mon ordinateur ( vu que pour l'instant je developpe l'application en local ) et j'obtient l'erreur suivante :

    'C:/Users/Documents/Visual Studio 2010/Projects/WebApplication3/WebApplication3/document/test.xlsx' est un chemin d'accès physique, mais un chemin d'accès virtuel était attendu.
    l'erreur viens a la ligne suivante :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
      Response.WriteFile(MapPath(Label7.Text));
    Sinon pour repondre a ta question ma listbox me retourne bien le nom du fichier avec son extension par exemple :
    Piecejointe1.xls
    Piecejointe2.doc
    Piecejointe3.pdf

  10. #10
    Membre éclairé Avatar de Ramajb
    Homme Profil pro
    ----------------------------
    Inscrit en
    Septembre 2007
    Messages
    476
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : ----------------------------

    Informations forums :
    Inscription : Septembre 2007
    Messages : 476
    Points : 755
    Points
    755
    Par défaut
    MapPath retourne le chemin absolu du ressource que tu souhaites accéder. L'erreur dit qu'il faut le changer par un chemin d'accès virtuel.
    Donc au lieu de
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Response.WriteFile(MapPath(Label7.Text));
    mets:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Response.WriteFile("~/s'il y en a/.../"+Label7.Text);
    a+

  11. #11
    Membre à l'essai
    Homme Profil pro
    Inscrit en
    Mars 2011
    Messages
    36
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mars 2011
    Messages : 36
    Points : 13
    Points
    13
    Par défaut
    Merci pour tes informations, grâce au code que tu ma donné j'ai plus d'erreur mais je m'on fichier ne souvre toujours pas aucun message j'rreur et quand je passe pour le debugage il afffiche bien le bon chemin ...

  12. #12
    Membre éclairé Avatar de Ramajb
    Homme Profil pro
    ----------------------------
    Inscrit en
    Septembre 2007
    Messages
    476
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : ----------------------------

    Informations forums :
    Inscription : Septembre 2007
    Messages : 476
    Points : 755
    Points
    755
    Par défaut
    Peut on egalement avoir le resultat de ceci si tu changes
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Response.WriteFile("~/s'il y en a/.../"+Label7.Text);
    par
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Response.TransmitFile(Server.MapPath("~/s'il y en a/.../"+Label7.Text))
    A+

  13. #13
    Membre à l'essai
    Homme Profil pro
    Inscrit en
    Mars 2011
    Messages
    36
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mars 2011
    Messages : 36
    Points : 13
    Points
    13
    Par défaut
    J' ai le meme probleme, il m'affiche rien ni d'erreur ni mon fichier =/

  14. #14
    Membre actif
    Homme Profil pro
    Développeur ASP.Net - disponible pour des missions
    Inscrit en
    Septembre 2008
    Messages
    151
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur ASP.Net - disponible pour des missions

    Informations forums :
    Inscription : Septembre 2008
    Messages : 151
    Points : 213
    Points
    213
    Par défaut
    regardes si c'est pas plutôt les popup ou autres qui sont bloqués sur ton navigateur

  15. #15
    Membre éclairé Avatar de Ramajb
    Homme Profil pro
    ----------------------------
    Inscrit en
    Septembre 2007
    Messages
    476
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : ----------------------------

    Informations forums :
    Inscription : Septembre 2007
    Messages : 476
    Points : 755
    Points
    755
    Par défaut
    bizarre. Ok, peux tu nous dire aussi le resultat de ceci: au lieu de mets Cela te permet d'avoir une boite de dialogue avec options ouvrir et enregistrer sous.

  16. #16
    Membre à l'essai
    Homme Profil pro
    Inscrit en
    Mars 2011
    Messages
    36
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mars 2011
    Messages : 36
    Points : 13
    Points
    13
    Par défaut
    J'ai tester et donc la sa m'ouvvre bien la fenetre ou sa me propose d'ouvrir mon fichier sauf que si dans ma listbox y avais le document :
    mondoc.xls

    le programme essaye d'ouvrir le fichier mondoc.zip

  17. #17
    Membre à l'essai
    Homme Profil pro
    Inscrit en
    Mars 2011
    Messages
    36
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mars 2011
    Messages : 36
    Points : 13
    Points
    13
    Par défaut
    Alors finalement j'ai reussi a contourner le probleme en fesan

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    System.Diagnostics.Process.Start(monfichier);

    Au moins mes fichiers s'ouvre mais le probleme c'est que les utilisateurs peuvent les modifiers il faudrais que je puisse forcer qu'il s'ouvre en lecture seul (pour l'instant j'ai pas trouver). Je repasserais mettre mon code si j'y arrive.

    En tous cas merci beaucoup pour ton aide

  18. #18
    Membre éclairé Avatar de Ramajb
    Homme Profil pro
    ----------------------------
    Inscrit en
    Septembre 2007
    Messages
    476
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : ----------------------------

    Informations forums :
    Inscription : Septembre 2007
    Messages : 476
    Points : 755
    Points
    755
    Par défaut
    Citation Envoyé par Alegreg Voir le message
    Alors finalement j'ai reussi a contourner le probleme en fesan

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    System.Diagnostics.Process.Start(monfichier);

    Au moins mes fichiers s'ouvre mais le probleme c'est que les utilisateurs peuvent les modifiers il faudrais que je puisse forcer qu'il s'ouvre en lecture seul (pour l'instant j'ai pas trouver). Je repasserais mettre mon code si j'y arrive.

    En tous cas merci beaucoup pour ton aide
    Je pense que tu fais une fausse route. Tu as le fichier ouvert car je suppose tu travail en local. Mais au cas où tu feras un déploiement de l'application vers le serveur ,ce
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    System.Diagnostics.Process.Start(monfichier);
    t'ouvres le fichier monfichier de côté serveur mais pas de côté client.

  19. #19
    Membre à l'essai
    Homme Profil pro
    Inscrit en
    Mars 2011
    Messages
    36
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mars 2011
    Messages : 36
    Points : 13
    Points
    13
    Par défaut
    Ah ok effectivement mes recherches ne m'avais pas donné cette information, j'attendais de finir une premiere version de mon application pour la deployer sur un serveur.

    Merci

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

Discussions similaires

  1. recuperer un objet dans une listbox
    Par olibara dans le forum ASP.NET
    Réponses: 6
    Dernier message: 06/01/2010, 17h29
  2. Ouvrir un fichier désigné par son adresse dans une case
    Par TomGratte dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 29/06/2009, 12h52
  3. [Conception] Enregistrer un fichier ou juste son chemin dans la base ?
    Par Greggggggg dans le forum PHP & Base de données
    Réponses: 3
    Dernier message: 20/09/2006, 14h00
  4. recuperer 3 float dans une ligne d'un fichier texte
    Par obiwankennedy dans le forum C++
    Réponses: 3
    Dernier message: 14/03/2006, 03h59
  5. Ouvrir un fichier sur un double-clic dans une TListBox
    Par SegmentationFault dans le forum Composants VCL
    Réponses: 4
    Dernier message: 09/08/2004, 17h22

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