| < | Noviembre 2008 | |||||
| Lu | Ma | Mi | Ju | Vi | Sa | Do |
|---|---|---|---|---|---|---|
| 1 | 2 | |||||
| 3 | 4 | 5 | 6 | 7 | 8 | 9 |
| 10 | 11 | 12 | 13 | 14 | 15 | 16 |
| 17 | 18 | 19 | 20 | 21 | 22 | 23 |
| 24 | 25 | 26 | 27 | 28 | 29 | 30 |
a href, pero en este caso me interesa que la petición "pase" por CF para controlar que tan sólo usuarios autorizados puedan descargarlos, razón por la cual, además, dichos ficheros están en un directorio fuera de la raíz del servidor, y por tanto, no son accesibles via a href.
cfcontent, una etiqueta que permite indicar al navegador el tipo MIME del contenido que le vamos a entregar, y además, permite señalar un fichero que será el contenido a descargar.
<cfcontent type="application/pdf" file="rutaabsolutadelfichero.pdf"> debería servir. Pues no. Bueno, casi. Hay dos problemas:
cfheader, que se usa para enviar "a mano" cabeceras HTTP al navegador, antes de entregarle el contenido de la página. En este caso, una cabecera content-disposition, que le indica al navegador como debe presentar el contenido que le ofrecemos: inline para mostrarlo en el navegador, o attachment para descargarlo. En este último caso, todo navegador bien educado le preguntará al usuario que desea hacer, si descargar el fichero, o abrirlo directamente.
<cfheader name = "content-disposition" value = "attachment; filename=nombredelfichero.pdf">
<cfcontent type = "application/pdf" file = "rutaabsolutadelfichero.pdf">
<cfset sExtension = ListLast(nombrecompletofichero, ".")>
<cfset sNombreFichero = ListDeleteAt(nombrecompletofichero, ListLen(nombrecompletofichero, "."), ".")>
<cfheader name="content-disposition" value="attachment; filename=#urlencodedformat(sNombreFichero)#.#sExtension#">
<cfcontent type="application/pdf" file="rutaabsolutadelfichero.pdf">
URL de trackback de esta historia http://webcraft.blogalia.com//trackbacks/41575