2010-12-15 61 views
0

J'ai un script qui génère un fichier PDF temporaire, binaire-le transmet au client, puis le supprime.ASP Response.AddHeader Content-Disposition ne fonctionne pas pour Acrobat

Si vous cliquez sur "Enregistrer la page sous" dans le menu Fichier du navigateur, il veut enregistrer le nom de fichier correct que j'ai spécifié via Content-Disposition. Cependant, si vous cliquez sur le bouton Enregistrer dans Acrobat Reader ou Acrobat Pro, il veut enregistrer le nom du fichier script en remplaçant ".asp" par ".pdf". C'est comme si Acrobat ignorait complètement "Content-Disposition"

Il est important de ne pas utiliser une URL statique, mais d'utiliser un script dynamique pour générer le PDF, afin de pouvoir le supprimer immédiatement après la fermeture du flux. Sinon, je ne peux pas savoir quand le client a fini de télécharger.

Y at-il une solution à cela? J'ai vu plusieurs threads, mais aucun avec une réponse.

Répondre

1

Vous pouvez utiliser un réécriteur d'URL pour pointer un chemin "statique" vers votre script dynamique. Voir this blog post sur la redirection ASP classique.

Ainsi, vous pouvez avoir un lien comme:

http://www.example.com/12_234_file.pdf 

Redirect à:

http://www.example.com/dynamic.asp?id=12&id2=234 

Le client verra l'URL avant qu'il ne soit ré-écrit et doit utiliser.

+0

Le problème est que j'ai besoin que les données GET proviennent d'un formulaire côté client. Pas d'autre moyen de le faire, hein? – Dexter

+0

@Dexter - Vous pouvez utiliser javascript pour créer le GET ou effectuer une redirection côté serveur avec la réécriture. – Oded

+0

C'est malheureux ... Cela prendra un peu d'ingéniosité. Je souhaite que je savais que cela arrivait avant que j'écrive le script. – Dexter