2010-11-02 7 views
2

Fichier PDF s'ouvre dans la même fenêtre, mais je veux l'ouvrir en tant que fichier séparé sans Enregistrer sous boîte de dialogue.Fichier PDF s'ouvre dans la même fenêtre, mais je veux l'ouvrir en tant que fichier séparé

Voici un morceau de code correspondant servlet:

response.setHeader("Expires", "0"); 
response.setHeader("Cache-Control", "must-revalidate, post-check=0, pre-check=0"); 
response.setHeader("Pragma", "public"); 
response.setHeader("Content-Disposition", "attachment;filename=_blank_"); 
response.setContentType("application/pdf"); 
response.setContentLength(baos.size()); 
ServletOutputStream out = response.getOutputStream(); 
baos.writeTo(out); 
out.flush(); 

Toutes les suggestions?

Répondre

3

Vous avez deux possibilités:

  1. Content-Disposition: attachment;filename=foo.pdf
  2. Content-Disposition: inline;filename=foo.pdf

Le premier invite l'utilisateur pour enregistrer le fichier et la boîte de dialogue dépend navigateur, vous ne pouvez pas faire grand-chose à ce sujet d'un script côté serveur. La seconde ouvre le pdf dans le navigateur s'il y a un programme enregistré capable de le faire comme Adobe Reader.

+0

J'ai essayé aussi de ne pas ouvrir la page dans la nouvelle – Aswini

+4

Mettre un 'target = « _ blank »' le lien ou l'ouvrir dans une nouvelle fenêtre. –

0

Vous posez cette question depuis longtemps, peut être jusqu'à maintenant vous avez obtenu de votre question. J'étais confronté au même problème et mon exigence était d'ouvrir le fichier PDF dans une fenêtre séparée. Quelle que soit la suggestion donnée en réponse, c'est bien. Je veux ajouter quelques lignes supplémentaires.

Dans servlet vous ajoutez ci-dessous le code qui devraient
webAppAccess.getHttpServletResponse() setHeader ("Content-Disposition", "en ligne; filename = de printReport.pdf").

et dans le fichier jsp

**window.open('PrintReportConsumer?operation=getShortReport&customerNumber=400000852&relationNumber=400000852&fromDate=29-Jun-2012&toDate=02-Jul-2012&languageId=en&language=en');**