2010-11-23 9 views
2

J'espère pouvoir expliquer ma situation avec précision.Définition dynamique du nom de fichier PDF

J'ai une page ASP.NET qui déverse des fichiers PDF pour les utilisateurs avec le code suivant:

Response.ContentType = "application/pdf";     
Response.AppendHeader("content-disposition", string.Format("inline; filename={0}", getFileName(DateTime.Now))); 

La raison pour laquelle je l'utilise « en ligne » au lieu de « l'attachement », donc je peux forcer la Les utilisateurs peuvent visualiser le PDF directement dans les navigateurs au lieu d'ouvrir l'acrobat pour voir les fichiers PDF. Tout va bien jusqu'ici, mais quand les utilisateurs veulent enregistrer un fichier, le nom du fichier qui devrait être "getFileName (DateTime.Now)", à la place il suffit de prendre le nom de la page comme myPDFpage.pdf.

Y at-il de toute façon, sans définir la disposition de contenu à "pièce jointe", pour les utilisateurs d'enregistrer le fichier avec le nom que je spécifie avec la méthode getFileName()?

Merci d'avance. badallen

Répondre

1

Ceci est un comportement simple de la façon dont acrobat gère le fichier lorsque vous l'avez ouvert en ligne. Autant que je sache, il n'y a pas de moyen de dicter ceci lors de l'ouverture en ligne, car cela devient la responsabilité d'Acrobat.

0

Je comprends que ce que vous essayez de faire ne soit pas possible car il y a des problèmes avec le type de disposition 'inline' (je suppose qu'il s'agit d'un problème de PDF et/ou de navigateur).

je luttais avec la même question et trouvé cet article qui promet une solution:
How to show or download a pdf file from an ASP.NET 2.0 page (iTextSharp version)

Le problème de base est que par les fichiers PDF par défaut seront enregistrés avec un nom de base (nom sans extension de nom de fichier) du la page est servie; l'article montre comment vous pouvez utiliser un HttpHandler nommé dynamiquement pour fournir des fichiers PDF et contrôler le nom de fichier. Juste avertissement: Je n'ai pas encore essayé moi-même, donc je ne peux pas vous dire si cela va fonctionner.

+1

J'ai écrit cet article il y a quelques années. Je viens de faire quelques petites corrections. Je confirme: ça fonctionne bien. –

Questions connexes