Sto provando a creare dinamicamente un PDF in linea che, quando l'utente sceglie di salvarlo, richiede il mio nome file personalizzato. Secondo the documentation, l'attributo saveasname
dovrebbe fare ciò che voglio.Content-disposition ignorata in IE 9 e Firefox 13
(solo formato "PDF") Il nome file visualizzato nella finestra di dialogo Salva con nome quando un utente salva un file PDF scritto nel browser.
Tuttavia, ciò che sta accadendo sia in IE 9 e in Firefox 13.0.1 è che il nome del file che appare nella finestra di dialogo Salva con nome è lo stesso che il mio modello CF, ma con estensione PDF. (In altre parole, il mio codice è makepdf.cfm
e SaveAs mi chiede di salvare makepdf.pdf
.) In Chrome, tuttavia, funziona perfettamente. (Tutto su Windows 7.)
Ecco il mio codice per creare il PDF:
<cfdocument format="pdf" bookmark="true" saveasname="MyReport.pdf">
Se io dichiaro esplicitamente la disposizione dei contenuti e tipo di contenuto, in questo modo
<cfheader name="Content-Disposition" value="inline; filename=MyReport.pdf">
<cfcontent type="application/x-pdf">
<cfdocument format="pdf" bookmark="true" saveasname="MyReport.pdf">
- Chrome mi dice che "Content-Disposition" è stato dichiarato due volte
- Firefox mi dice che il file PDF è corrotto
- IE semplicemente lo ignora (e ancora non mostra il nome del file a destra)
Se mi baso solo sulla testata
<cfheader name="Content-Disposition" value="inline; filename=MyReport.pdf">
<cfcontent type="application/x-pdf">
<cfdocument format="pdf" bookmark="true">
ottengo lo stesso comportamento come il primo frammento di codice.
So come ottenere il browser per richiedere il download anziché visualizzare in linea e tutto funziona come previsto, ma non è il comportamento desiderato.
Ho bisogno di usare orari e date nei nomi dei file e gli utenti finali non sono abbastanza esperti da evitare di sovrascrivere i loro file (dovrebbero scegliere di salvarli).
C'è qualcosa che mi manca che farà sì che IE e Firefox facciano quello che dovrebbero? Quali altri browser lo faranno? Safari mobile?
URL ri-scrittura non è un'opzione per questo particolare progetto, ma questo è un po 'di buone informazioni per avere per il futuro. – ale
Si scopre che non è necessario riscrivere URL: è sufficiente aggiungere una barra e il nome file scelto all'URL dello script è sufficiente. Vedi risposta aggiornata. – CfSimplicity