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 :

Afficher un flux pdf dans une nouvelle fenetre


Sujet :

ASP.NET

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    262
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 262
    Par défaut Afficher un flux pdf dans une nouvelle fenetre
    bonjour
    je suis un page A, mon client clique sur un bouton à partir de là, coté serveur suivant les choix sélectionnées j'appelle un webservice qui me renvoie un byte[] contenant un flux pdf que je souhaite afficher dans une nouvelle fenetre ou lecteur pdf comment puis je faire cela sans créer un fichier temporaire
    Par avance merci

  2. #2
    Rédacteur
    Avatar de Louis-Guillaume Morand
    Homme Profil pro
    Cloud Architect
    Inscrit en
    Mars 2003
    Messages
    10 839
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Cloud Architect
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2003
    Messages : 10 839
    Par défaut
    tu ouvres une nouvelle page aspx, qui, dans le code html ne contient RIEN, STRICTEMENT RIEN que la première ligne
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <%@ Page Language="C#" AutoEventWireup="true" CodeBehind="DownloadFile.aspx.cs" Inherits="DVP.DownloadFile" %>
    puis, tu fais appel à ton webservice depuis le Load de ta page

    puis tu écris quelque chose du genre

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    Response.Clear();
                Response.ClearHeaders();
     
                Response.Cache.SetCacheability(HttpCacheability.Private); // réactivation du cache client pour cette réponse! (override le web.config)
     
                Response.AddHeader("content-disposition", "attachment; filename=" + doc.FileName);
                Response.ContentType = "application/pdf";
                //Response.OutputStream.Write(file, 0, Convert.ToInt32(file.Length));
                BinaryWriter writer = new BinaryWriter(Response.OutputStream);
                writer.Write(doc.Content);
                Response.End();
    *doc.Content est un byte[], et doc.Name une chaine de caractère.



    si tu te poses la question de savoir
    1- comment ouvrir le pdf via le browser ou un lecteur pdf
    2- si ca va etre moche une fenêtre supplémentaire

    et bien teste ma solution. il y a besoin de strictement rien de plus que cela pour donner le même comportement que si tu pointais vers un toto.pdf posé directement sur le serveur.

    tu peux faire pareil avec un ashx d'ailleurs

  3. #3
    Membre éclairé
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    262
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 262
    Par défaut
    merci mais en fait cela je sais faire, bien que normalement je fasse cela par des ashx car c'est fait pour cela .
    en fait j'étais plus dans la reflexion que je ne voulais pas ouvrir mon pdf via une autre url, et donc je me posais la question si il y avait une solution. en gros de rester sur la même page et d'ouvrir mon pdf dans une nouvelle fenetre sans passer par un fichier temporaire ou une autre url.
    mais peut etre est ce impossible

  4. #4
    Membre éclairé
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    262
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 262
    Par défaut
    en fait j'ai fait un aspx avec
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
                    byte[] fluxpdf = ....
                    Response.Clear();
                    Response.AppendHeader("content-disposition", "attachment; filename=comptes.pdf"); 
                    Response.AddHeader("content-type", "application/pdf");
                    Response.BinaryWrite(fluxpdf);

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

Discussions similaires

  1. Afficher PDF dans une nouvelle page avec Struts
    Par Snyper dans le forum Struts 1
    Réponses: 10
    Dernier message: 14/12/2011, 15h53
  2. afficher du texte dans une nouvelle fenetre ?
    Par italiasky dans le forum MFC
    Réponses: 7
    Dernier message: 25/11/2008, 15h52
  3. Envoie flux PDF vers une nouvelle fenetre web
    Par anouaraz dans le forum Servlets/JSP
    Réponses: 2
    Dernier message: 14/05/2008, 12h02
  4. Afficher un flux PDF dans une page HTML
    Par dachu dans le forum Général Conception Web
    Réponses: 3
    Dernier message: 21/04/2008, 11h55
  5. lien dans une nouvelle fenetre
    Par benjamin_normand dans le forum Balisage (X)HTML et validation W3C
    Réponses: 5
    Dernier message: 08/01/2006, 11h43

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