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 :

Lien de téléchargement de fichier dans une page


Sujet :

ASP.NET

  1. #1
    Membre habitué

    Homme Profil pro
    Informatique en tant qu'autodidacte passionné
    Inscrit en
    Mars 2009
    Messages
    185
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Informatique en tant qu'autodidacte passionné
    Secteur : Santé

    Informations forums :
    Inscription : Mars 2009
    Messages : 185
    Points : 137
    Points
    137
    Billets dans le blog
    1
    Par défaut Lien de téléchargement de fichier dans une page
    Bonjour, et très bonne année 2013 à toutes et à tous

    Sur une page .aspx , j'ai mis un lien de téléchargement vers un fichier comme ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     <asp:HyperLink ID="HyperLink2" runat="server" 
              NavigateUrl="~/membres/telecharger/Exemple.pdf">Exemple</asp:HyperLink>
    Dès que ce lien (Exemple) est cliqué, ce fichier s'ouvre automatiquement dans le navigateur, et c'est à ce moment que l'internaute peut l'enregistrer sur son poste de travail.

    Mes questions:

    1/ Comment empêcher l'ouverture automatique du fichier avec le clic gauche?
    2/ Comment faire apparaître la fenêtre du commande du navigateur ( proposant les différentes options : enregistrement, ouvrir...) , sans sans avoir recours auclic droit ?
    3/ Comment faire pour associer à chaque fichier son icône correspondante et où trouver toutes ces icônes : Word, Excel, PDF,ODT...?

    Merci

  2. #2
    Expert éminent
    Avatar de Immobilis
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Mars 2004
    Messages
    6 559
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Mars 2004
    Messages : 6 559
    Points : 9 506
    Points
    9 506
    Par défaut
    Salut,

    Beaucoup de question dans un seul fil. Tout cela se gère via le code. Nativement, un lien hypertexte est juste un pointeur vers une ressource hébergée dans ton site.

    Citation Envoyé par Publicnew Voir le message
    1/ Comment empêcher l'ouverture automatique du fichier avec le clic gauche?
    C'est un comportement de ton navigateur. Il faudrait déactiver le menu contextuel du navigateur via un javascript. A voir sur le forum.
    Citation Envoyé par Publicnew Voir le message
    2/ Comment faire apparaître la fenêtre du commande du navigateur ( proposant les différentes options : enregistrement, ouvrir...), sans sans avoir recours auclic droit ?
    Il faut que ton code se substitue au comportement de IIS. Il faut que ta page renvoi le flux binaire du fichier sous la forme d'un fichier attaché.
    Citation Envoyé par Publicnew Voir le message
    3/ Comment faire pour associer à chaque fichier son icône correspondante et où trouver toutes ces icônes : Word, Excel, PDF,ODT...?
    Quand tu connais le type du fichier ver lequel pointe ton lien tu ajoutes l'image correspondante ou tu appliques un style.

    A+
    "Winter is coming" (ma nouvelle page d'accueil)

  3. #3
    Membre habitué

    Homme Profil pro
    Informatique en tant qu'autodidacte passionné
    Inscrit en
    Mars 2009
    Messages
    185
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Informatique en tant qu'autodidacte passionné
    Secteur : Santé

    Informations forums :
    Inscription : Mars 2009
    Messages : 185
    Points : 137
    Points
    137
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par Immobilis Voir le message
    Salut,
    Il faut que ton code se substitue au comportement de IIS. Il faut que ta page renvoi le flux binaire du fichier sous la forme d'un fichier attaché.
    A+
    Bonsoir,

    Comment mettre concrètement en oeuvre ce code : le flux binaire du fichier sous la forme d'un fichier attaché renvoyé par la page (en VB.NET).

    Y a t'il quelque chose à écrire dans la page de code aspx.vb, ou source .aspx ?

    Merci

  4. #4
    Membre confirmé
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Mars 2011
    Messages
    453
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ille et Vilaine (Bretagne)

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

    Informations forums :
    Inscription : Mars 2011
    Messages : 453
    Points : 478
    Points
    478
    Par défaut
    Bonjour,

    Il faut que tu fasses un truc du genre :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    Response.HeaderEncoding = System.Text.Encoding.UTF8
    Response.AppendHeader("Content-Disposition", "attachment; filename=" & tonDocument)
    Response.TransmitFile(tonDocument)
    Response.End()
    Et le navigateur (IE en tout cas c'est sûr) te demanderas ce que tu veux faire du fichier.

  5. #5
    Expert éminent
    Avatar de Immobilis
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Mars 2004
    Messages
    6 559
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Mars 2004
    Messages : 6 559
    Points : 9 506
    Points
    9 506
    Par défaut
    Citation Envoyé par Publicnew Voir le message
    Comment mettre concrètement en oeuvre ce code : le flux binaire du fichier sous la forme d'un fichier attaché renvoyé par la page (en VB.NET).

    Y a t'il quelque chose à écrire dans la page de code aspx.vb, ou source .aspx ?
    Tu peux faire une recherche de "Response BinaryWrite" sur les forums.
    Sinon, y'a un bout de code dans ce tuto: http://immobilis.developpez.com/tuto...grace-a-excel/. Voir la dernière méthode du paragraphe IV-B: "Méthode permettant l'envoi du fichier XML au client".

    A+
    "Winter is coming" (ma nouvelle page d'accueil)

  6. #6
    Membre habitué

    Homme Profil pro
    Informatique en tant qu'autodidacte passionné
    Inscrit en
    Mars 2009
    Messages
    185
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Informatique en tant qu'autodidacte passionné
    Secteur : Santé

    Informations forums :
    Inscription : Mars 2009
    Messages : 185
    Points : 137
    Points
    137
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par Immobilis Voir le message
    Tu peux faire une recherche de "Response BinaryWrite" sur les forums.
    Sinon, y'a un bout de code dans ce tuto: http://immobilis.developpez.com/tuto...grace-a-excel/. Voir la dernière méthode du paragraphe IV-B: "Méthode permettant l'envoi du fichier XML au client".

    A+
    Bonsoir,

    J'ai lu ton tutoriel qui semble plus traiter de Sérialisation/Désérialisation pour les fichiers .xml
    Pour la recherche "Response BinaryWrite", et même sur "Télécharger un fichier", j'ai trouvé plusieurs réponses, mais aucune ne semble s'adapter à ce que je cherche

    A +

  7. #7
    Membre habitué

    Homme Profil pro
    Informatique en tant qu'autodidacte passionné
    Inscrit en
    Mars 2009
    Messages
    185
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Informatique en tant qu'autodidacte passionné
    Secteur : Santé

    Informations forums :
    Inscription : Mars 2009
    Messages : 185
    Points : 137
    Points
    137
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par Shadam Voir le message
    Bonjour,

    Il faut que tu fasses un truc du genre :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    Response.HeaderEncoding = System.Text.Encoding.UTF8
    Response.AppendHeader("Content-Disposition", "attachment; filename=" & tonDocument)
    Response.TransmitFile(tonDocument)
    Response.End()
    Et le navigateur (IE en tout cas c'est sûr) te demanderas ce que tu veux faire du fichier.
    Bonsoir,

    Merci d'avoir essayé de m'aider.


    J'ai essayé de m'inspirer de plusieurs codes trouvés sur le forum, mis je n'ai pas réussi à trouver ce que je souhaitais .

    Chaque solution trouvée est spécifique.

    Par exemple celle-ci : d'un membre de ce forum nommé eclisse

    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
    25
    26
    27
    response.Clear
    Response.AddHeader "Content-Disposition","attachment; filename=asp.pdf"
    fn = "asp.pdf" 
    FPath = server.MapPath(fn)
    Response.AddHeader "Content-Disposition", "attachment; filename=" & fn 
     
    Set adoStream = CreateObject("ADODB.Stream") 
    chunk = 2048 
    adoStream.Open() 
    adoStream.Type = 1 
    adoStream.LoadFromFile(FPath) 
    iSz = adoStream.Size 
    Response.AddHeader "Content-Length", iSz 
    For i = 1 To iSz \ chunk 
    	If Not Response.IsClientConnected Then Exit For 
    	Response.BinaryWrite adoStream.Read(chunk) 
    Next 
     
    If iSz Mod chunk > 0 Then 
    	If Response.IsClientConnected Then 
    		Response.BinaryWrite adoStream.Read(iSz Mod chunk) 
    	End If 
    End If 
     
    adoStream.Close 
    Set adoStream = Nothing 
    Response.End
    Le problème :
    Je ne sais pas à quel évènement la lier dans la partie de ma page telecharger.aspx.vb

    Ce que je souhaite :
    Par exemple une liste de liens à télécharger :

    1/dans une page nommée telecharger.aspx :

    exemple1 (qui correspondra dans le code caché à exemple1.pdf)
    exemple2 (qui correspondra dans le code caché à exemple2.xls)
    exemple3 (qui correspondra dans le code caché à exemple3.doc)
    exemple4 (qui correspondra dans le code caché à exemple4.jpg)
    exemple5 (qui correspondra dans le code caché à exemple5.gif)

    2/ et que cela ouvre la fenêtre Enregistrer Sous: sur le poste de travail du poste client

    Question:
    Quel est le code à mettre en oeuvre pour réaliser cet exemple de page qu'on trouve sur les sites du monde entier qui proposent des liens de téléchargements (si possible en VB.NET)

    Pardonnez-moi cette demande "excessive", je ne suis pas à l'aise avec le C#

    Je n'ai pas trouvé de tutoriel sur ce sujet.

    Merci de m'avoir répondu

  8. #8
    Membre habitué

    Homme Profil pro
    Informatique en tant qu'autodidacte passionné
    Inscrit en
    Mars 2009
    Messages
    185
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Informatique en tant qu'autodidacte passionné
    Secteur : Santé

    Informations forums :
    Inscription : Mars 2009
    Messages : 185
    Points : 137
    Points
    137
    Billets dans le blog
    1
    Par défaut
    Bonjour,

    J'ai enfin trouvé la solution...( par hasard)

    Mon navigateur (I.E), lorsqu'il ne s'agit pas de fichiers de type : image, vidéo ou pdf (pour lesquels le mystère reste entier), ouvre systématiquement la fenêtre proposant les différentes actions : Ouvrir, Enregistrer, Enregistrer sous.

    J'ai ainsi, introduit plusieurs liens Hyperlink pour les fichiers de type : .exe , .doc,. xls

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    <asp:HyperLink ID="DOC" runat="server" 
                NavigateUrl="~/Resssources/reunion de bureau novembre.doc">Fichier type DOC</asp:HyperLink>
     
    <asp:HyperLink ID="EXE" runat="server" 
                NavigateUrl="~/Ressources/Plug-in_messagerie_vocale_888.exe">Fichier type EXE</asp:HyperLink>
     
    <asp:HyperLink ID="HyperLink3" runat="server" 
                NavigateUrl="~/Resssources/Copie de Liste des jeudi 2012-2013  2.xls">Fichier type Excel</asp:HyperLink>
    et, avec le clic gauche sur le lien du fichier de type doc, voici la fenêtre qui s'ouvre:

    Merci à Immobilis et à Shadam
    Images attachées Images attachées  

  9. #9
    Expert éminent
    Avatar de Immobilis
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Mars 2004
    Messages
    6 559
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Mars 2004
    Messages : 6 559
    Points : 9 506
    Points
    9 506
    Par défaut
    Citation Envoyé par Publicnew Voir le message
    J'ai ainsi, introduit plusieurs liens Hyperlink pour les fichiers de type : .exe , .doc,. xls

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    <asp:HyperLink ID="DOC" runat="server" 
                NavigateUrl="~/Resssources/reunion de bureau novembre.doc">Fichier type DOC</asp:HyperLink>
     
    <asp:HyperLink ID="EXE" runat="server" 
                NavigateUrl="~/Ressources/Plug-in_messagerie_vocale_888.exe">Fichier type EXE</asp:HyperLink>
     
    <asp:HyperLink ID="HyperLink3" runat="server" 
                NavigateUrl="~/Resssources/Copie de Liste des jeudi 2012-2013  2.xls">Fichier type Excel</asp:HyperLink>
    Et en quoi cela change de ce que tu avais écris au début??
    Citation Envoyé par Publicnew Voir le message
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     <asp:HyperLink ID="HyperLink2" runat="server" 
              NavigateUrl="~/membres/telecharger/Exemple.pdf">Exemple</asp:HyperLink>
    Du coup, cela ne répond pas à tes interrogations...
    Citation Envoyé par Publicnew Voir le message
    Mes questions:

    1/ Comment empêcher l'ouverture automatique du fichier avec le clic gauche?
    2/ Comment faire apparaître la fenêtre du commande du navigateur ( proposant les différentes options : enregistrement, ouvrir...) , sans sans avoir recours auclic droit ?
    3/ Comment faire pour associer à chaque fichier son icône correspondante et où trouver toutes ces icônes : Word, Excel, PDF,ODT...?
    A+
    "Winter is coming" (ma nouvelle page d'accueil)

  10. #10
    Membre habitué

    Homme Profil pro
    Informatique en tant qu'autodidacte passionné
    Inscrit en
    Mars 2009
    Messages
    185
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Informatique en tant qu'autodidacte passionné
    Secteur : Santé

    Informations forums :
    Inscription : Mars 2009
    Messages : 185
    Points : 137
    Points
    137
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par Immobilis Voir le message
    Et en quoi cela change de ce que tu avais écris au début??
    Du coup, cela ne répond pas à tes interrogations...A+
    Bonjour,

    A/ Par rapport à ce que j'ai écrit au début:

    1/ Les fichiers .doc .xls .exe , lancent la fenêtre d'enregistrement du navigateur.

    2/ Les fichiers .jpg .png .gif .mov .pdf s'ouvrent dans le navigateur, en effet d'emblée, par le clic gauche, sans rien demander à l'internaute.

    B/ Cela ne répond pas en effet à toutes mes interrogations. Tu as raison.
    J'enlève donc le Tag "Résolu"

  11. #11
    Expert éminent
    Avatar de Immobilis
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Mars 2004
    Messages
    6 559
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Mars 2004
    Messages : 6 559
    Points : 9 506
    Points
    9 506
    Par défaut
    Peux-tu:
    1/ Comment empêcher l'ouverture automatique du fichier avec le clic gauche?
    Ouvrir un fil dans le forum JavaScript.
    3/ Comment faire pour associer à chaque fichier son icône correspondante et où trouver toutes ces icônes : Word, Excel, PDF,ODT...?
    Ouvrir une nouvelle discussion dans ce forum.
    Pour:
    2/ Comment faire apparaître la fenêtre du commande du navigateur ( proposant les différentes options : enregistrement, ouvrir...) , sans sans avoir recours auclic droit ?
    On va y répondre dans cette discussion.
    "Winter is coming" (ma nouvelle page d'accueil)

Discussions similaires

  1. Réponses: 9
    Dernier message: 09/07/2010, 14h32
  2. [SP-2007] Téléchargement de fichiers dans une bibliothèque
    Par aladdin.ensi dans le forum SharePoint
    Réponses: 1
    Dernier message: 19/05/2009, 10h46
  3. affichage des fichiers dans une page jsf
    Par quick dans le forum JSF
    Réponses: 3
    Dernier message: 17/06/2008, 15h37
  4. Inclure un fichier dans une page ASP
    Par undercrash dans le forum ASP
    Réponses: 2
    Dernier message: 09/04/2008, 16h29
  5. Insérer un fichier dans une page web
    Par Mad666 dans le forum ASP
    Réponses: 6
    Dernier message: 05/05/2004, 11h22

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