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 :

Problème avec un hyperlink [Débutant]


Sujet :

ASP.NET

  1. #1
    Futur Membre du Club
    Homme Profil pro
    Inscrit en
    Novembre 2013
    Messages
    11
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Novembre 2013
    Messages : 11
    Points : 5
    Points
    5
    Par défaut Problème avec un hyperlink
    Bonjour,

    Comme vous pouvez le voir avec le titre de mon sujet je suis débutant en asp.net. Je recherche depuis quelques jours sur internet une solution à mon problème mais hélas sans résultat.

    Dans le programme que je veux créer ( qui est une application permettant le partage de fichiers dans une entreprise en intranet ) j'enregistre dans ma bdd le chemin d'accès des fichiers enregistrés puis dans un Gridview j'utilise ce bout de code permettant en temps normal télécharger les fichiers.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    <asp:TemplateField HeaderText="Téléchargement du fichier">
                     <ItemTemplate>
                         <asp:HyperLink ID="FileLink" runat="server" Text="<%# Bind('NomFichier') %>" NavigateUrl="<%# Bind('LienFichier') %>" Target="_blank"></asp:HyperLink>             
                     </ItemTemplate>             
    </asp:TemplateField>
    Lorsque je clique sur le lien ( qui est visible ) il ne se passe rien. J'ai beau faire un clic droit dessus et essayer "Ouvrir", "Ouvrir dans un nouvel onglet", "Ouvrir dans une nouvelle fenêtre" rien ne se passe.

    Mais si je copie le raccourcis et que je le colle dans la barre d'URL la tout se passe bien, le navigateur me propose d'enregistrer le fichier. Donc ce n'est pas le chemin d'accès qui pose problème mais l'ouverture de la nouvelle page de téléchargement elle-même qui ne fonctionne pas. J'ai essayé sur IE et sur Chrome le résultat est le même ( au cas ou si c'étais le navigateur qui posais problème).

    Merci d'avance pour ceux qui liront ce sujet.

  2. #2
    Membre habitué
    Homme Profil pro
    Code Addict
    Inscrit en
    Janvier 2013
    Messages
    61
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Code Addict

    Informations forums :
    Inscription : Janvier 2013
    Messages : 61
    Points : 175
    Points
    175
    Par défaut
    Les quotes et doubles quotes ne me semblent pas bonnes.

    Essayes comme ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <asp:HyperLink ID="FileLink" runat="server" Text='<%# Bind("NomFichier") %>' NavigateUrl='<%# Bind("LienFichier") %>' Target="_blank"></asp:HyperLink>

  3. #3
    Futur Membre du Club
    Homme Profil pro
    Inscrit en
    Novembre 2013
    Messages
    11
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Novembre 2013
    Messages : 11
    Points : 5
    Points
    5
    Par défaut
    Merci de ta réponse rapide =)
    Je ne peut vérifier cela de chez moi car l'entreprise ou je suis ne m'autorise pas a garder le code de mon application.
    Donc j'essayerais lundi matin et donnerais des nouvelles.

    Merci encore !

  4. #4
    Membre habitué
    Homme Profil pro
    Code Addict
    Inscrit en
    Janvier 2013
    Messages
    61
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Code Addict

    Informations forums :
    Inscription : Janvier 2013
    Messages : 61
    Points : 175
    Points
    175
    Par défaut
    Ok, n'oublie de mettre le post en Résolu si cela t'as aidé

  5. #5
    Futur Membre du Club
    Homme Profil pro
    Inscrit en
    Novembre 2013
    Messages
    11
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Novembre 2013
    Messages : 11
    Points : 5
    Points
    5
    Par défaut
    Bonjour !

    Alors j'ai bien changé les quotes et double quotes mais hélas cela n'a rien changé :/

    Il ne se passe toujours rien lors du clic sur le lien

  6. #6
    Membre éclairé
    Inscrit en
    Septembre 2007
    Messages
    1 137
    Détails du profil
    Informations personnelles :
    Âge : 40

    Informations forums :
    Inscription : Septembre 2007
    Messages : 1 137
    Points : 707
    Points
    707
    Par défaut
    on peut savoir ce que renvoie ceci:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    <%# Bind("LienFichier") %>

  7. #7
    Futur Membre du Club
    Homme Profil pro
    Inscrit en
    Novembre 2013
    Messages
    11
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Novembre 2013
    Messages : 11
    Points : 5
    Points
    5
    Par défaut
    Oui bien sûr =)

    Ceci : <%# Bind("LienFichier") %> permet d'aller chercher dans ma base de données SQL SERVER le chemin d'accès vers le fichier.

  8. #8
    Membre éclairé
    Inscrit en
    Septembre 2007
    Messages
    1 137
    Détails du profil
    Informations personnelles :
    Âge : 40

    Informations forums :
    Inscription : Septembre 2007
    Messages : 1 137
    Points : 707
    Points
    707
    Par défaut
    En tant que membre chevronné je sais tres bien ce que fais le Bind !!

    J'attendais á ce que tu nous donnes la valeur de Bind !!!

  9. #9
    Futur Membre du Club
    Homme Profil pro
    Inscrit en
    Novembre 2013
    Messages
    11
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Novembre 2013
    Messages : 11
    Points : 5
    Points
    5
    Par défaut
    Excuse moi je n'avais pas compris ta question.

    Voici un exemple de ce que peut contenir LienFichier dans ma BDD :
    C:/180/Tulipes.jpg

    Et le chemin affiché lors du passage de la souris sur le lien :
    file:///C:/180/Tulipes.jpg

  10. #10
    Membre habitué
    Homme Profil pro
    Code Addict
    Inscrit en
    Janvier 2013
    Messages
    61
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Code Addict

    Informations forums :
    Inscription : Janvier 2013
    Messages : 61
    Points : 175
    Points
    175
    Par défaut
    Essayes plutôt ça :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <asp:HyperLink ID="FileLink" runat="server" Text='<%# Bind("NomFichier") %>' NavigateUrl='<%# HttpContext.Current.Request.ResolveUrl(Bind("File")) %>' Target="_blank"></asp:HyperLink>
    Si cela fonctionne, remercie également @tortuegenie d'avoir poser la bonne question

    La syntaxe file:/// permet d'accéder aux ressources sur ta machine locale, par contre pour accéder à des ressources sur un serveur il faut que tu utilises HttpContext.Current.Request.ResolveUrl(Bind("lienFichier"))

  11. #11
    Futur Membre du Club
    Homme Profil pro
    Inscrit en
    Novembre 2013
    Messages
    11
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Novembre 2013
    Messages : 11
    Points : 5
    Points
    5
    Par défaut
    Bonjour =)

    Je pense que tu as raison Zilpix mon problème doit venir de la ^^
    Quand j'ai apporté les changements cela me fait une erreur :

    'System.Web.HttpRequest' ne contient pas une définition pour 'ResolveUrl' et aucune méthode d'extension 'ResolveUrl' acceptant un premier argument de type 'System.Web.HttpRequest' n'a été trouvée (une directive using ou une référence d'assembly est-elle manquante ?)
    J'ai bien sûr vérifié que ma page behing possède l'assembly : Et j'ai effectué quelques recherches sur ce problème mais sans résultat. Je pense avoir oublié quelque chose mais quoi ? :/

    Je met mon code modifié au cas ou ^^ :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    <asp:TemplateField HeaderText="Téléchargement du fichier">
                     <ItemTemplate>
                         <asp:HyperLink ID="FileLink" runat="server" Text='<%# Bind("NomFichier") %>' NavigateUrl='<%# HttpContext.Current.Request.ResolveUrl(Bind("LienFichier")) %>' Target="_blank"></asp:HyperLink>             
                     </ItemTemplate>             
                 </asp:TemplateField>
    Merci à vous deux de m'aider comme vous le faites vous êtes sympas

  12. #12
    Membre éclairé
    Inscrit en
    Septembre 2007
    Messages
    1 137
    Détails du profil
    Informations personnelles :
    Âge : 40

    Informations forums :
    Inscription : Septembre 2007
    Messages : 1 137
    Points : 707
    Points
    707
    Par défaut
    euh ca marche maintenant ou pas ?

  13. #13
    Membre éclairé
    Inscrit en
    Septembre 2007
    Messages
    1 137
    Détails du profil
    Informations personnelles :
    Âge : 40

    Informations forums :
    Inscription : Septembre 2007
    Messages : 1 137
    Points : 707
    Points
    707
    Par défaut
    il me semble qu'il n'est pas possible de faire un navigateurl directement en utilisant file://.

  14. #14
    Futur Membre du Club
    Homme Profil pro
    Inscrit en
    Novembre 2013
    Messages
    11
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Novembre 2013
    Messages : 11
    Points : 5
    Points
    5
    Par défaut
    Hélas non

    Lorsque je lance la page le message d'erreur suivant s'affiche :


    'System.Web.HttpRequest' ne contient pas une définition pour 'ResolveUrl' et aucune méthode d'extension 'ResolveUrl' acceptant un premier argument de type 'System.Web.HttpRequest' n'a été trouvée (une directive using ou une référence d'assembly est-elle manquante ?)

  15. #15
    Membre éclairé
    Inscrit en
    Septembre 2007
    Messages
    1 137
    Détails du profil
    Informations personnelles :
    Âge : 40

    Informations forums :
    Inscription : Septembre 2007
    Messages : 1 137
    Points : 707
    Points
    707
    Par défaut
    oui c'est ce que je pensais.

    Il faut passer par une page show.aspx?filename=......
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    Response.AddHeader("content-disposition", "attachment; filename=\"" + sFilename + "." + sfiletype + "\"");
                        Response.ContentType = "application/octet-stream"; 
    Response.WriteFile(sFilePath);
                    Response.End();
    et dans ton code behind tu fais un navigateurl sur /Show.aspx

    y'a des exemple sur le net pour afficher un document depuis le server

  16. #16
    Futur Membre du Club
    Homme Profil pro
    Inscrit en
    Novembre 2013
    Messages
    11
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Novembre 2013
    Messages : 11
    Points : 5
    Points
    5
    Par défaut
    Lors de tests je viens remarquer que si mes fichiers se trouvent sur mon lecteur C: le problème survient c'est a dire lien cliquable mais rien ne se passe et si on copie le lien dans l'URL tout marche bien. Alors que si les fichiers se trouvent sur le U: ( qui est sur un serveur ) tout marche parfaitement donc possibilité de télécharger le fichier.

    Donc le problème ne viendrais pas du code en lui-même ?

    Ceci fonctionne donc sur mon U: mais pas sur le C: je ne m'y connais pas trop mais j'ai essayé de modifier les droits au cas ou, j'ai donc tout autorisé lecture, modification sur les dossiers parents et ainsi aux dossiers et fichiers enfants mais cela n'a rien changé ...
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    <asp:TemplateField HeaderText="Téléchargement du fichier">
                     <ItemTemplate>
                         <asp:HyperLink ID="FileLink" runat="server" Text="<%# Bind('NomFichier') %>" NavigateUrl="<%# Bind('LienFichier') %>" Target="_blank"></asp:HyperLink>             
                     </ItemTemplate>             
    </asp:TemplateField>
    Je ne sais pas si cela vous aide ^^"

    En tout cas je fait des recherches sur la solution de tortuegenie merci a toi

  17. #17
    Modérateur
    Avatar de DotNetMatt
    Homme Profil pro
    CTO
    Inscrit en
    Février 2010
    Messages
    3 611
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : CTO
    Secteur : Finance

    Informations forums :
    Inscription : Février 2010
    Messages : 3 611
    Points : 9 743
    Points
    9 743
    Billets dans le blog
    3
    Par défaut
    Citation Envoyé par tortuegenie Voir le message
    Il faut passer par une page show.aspx?filename=......
    Il vaut mieux utiliser un Gestionnaire HTTP (.ashx) s'il s'agit juste de télécharger un fichier, ça évite de lancer tout le cycle de vie d'une pages .aspx

    Il n'y a en effet que la méthode ProcessRequest à utiliser.
    Less Is More
    Pensez à utiliser les boutons , et les balises code
    Desole pour l'absence d'accents, clavier US oblige
    Celui qui pense qu'un professionnel coute cher n'a aucune idee de ce que peut lui couter un incompetent.

  18. #18
    Expert confirmé

    Homme Profil pro
    Développeur .NET
    Inscrit en
    Novembre 2010
    Messages
    2 065
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Novembre 2010
    Messages : 2 065
    Points : 4 229
    Points
    4 229
    Par défaut
    Et avec un simple Server.MapPath ça ne marche pas ?

  19. #19
    Futur Membre du Club
    Homme Profil pro
    Inscrit en
    Novembre 2013
    Messages
    11
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Novembre 2013
    Messages : 11
    Points : 5
    Points
    5
    Par défaut
    Non le ServerMapPath ne fonctionne pas non plus

    Mais sachant que selon ou se trouve mon fichier de destination cela fonctionne ou non ( Fichier se trouvant sur le C: le code ne fonctionne pas et fichier se trouvant sur le U: le code fonctionne) est ce que cela serais pas plutôt une question de droits ou quelque chose comme çà ?

    Je propose cela comme ça mais je n'ai pas beaucoup d'expérience dans se domaine ^^

    Je regarde ce que DotNetMatt m'a proposé en attendant

  20. #20
    Membre éclairé
    Inscrit en
    Septembre 2007
    Messages
    1 137
    Détails du profil
    Informations personnelles :
    Âge : 40

    Informations forums :
    Inscription : Septembre 2007
    Messages : 1 137
    Points : 707
    Points
    707
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Il vaut mieux utiliser un Gestionnaire HTTP (.ashx) s'il s'agit juste de télécharger un fichier, ça évite de lancer tout le cycle de vie d'une pages .aspx
    tu as raison DotNetMatt pour le ashx, c'est un vieux code que j'utilise, dans le nouveaux je passe par un ashx. lol

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 2 12 DernièreDernière

Discussions similaires

  1. [AC-2007] problème avec des variables de type hyperlink
    Par rominous41 dans le forum VBA Access
    Réponses: 4
    Dernier message: 19/05/2011, 16h05
  2. Problème avec Hyperlinks
    Par wabo67 dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 30/01/2008, 10h55
  3. Problème avec le type 'Corba::Any_out'
    Par Steven dans le forum CORBA
    Réponses: 2
    Dernier message: 14/07/2002, 18h48
  4. Problème avec la mémoire virtuelle
    Par Anonymous dans le forum CORBA
    Réponses: 13
    Dernier message: 16/04/2002, 16h10

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