Ver Mensaje Individual
  #8 (permalink)  
Antiguo 28/03/2009, 11:08
Avatar de PosProdukcion
PosProdukcion
 
Fecha de Ingreso: noviembre-2004
Ubicación: Manzanares el Real (Madrid)
Mensajes: 726
Antigüedad: 20 años, 5 meses
Puntos: 9
Respuesta: Seguridad en carpetas del servidos vs campo BLOB

Pues funcionó perfecto, aquí va un resumen...

Genero el PDF y lo guardo en una ruta con extensión ASP en lugar de PDF:


Código asp:
Ver original
  1. ruta = "/informes/F" & destino & ".asp"
  2. pdf.Save(ruta)

Para leer ese fichero utilizo una simplifaicación del código de Myakire (por legibilidad he quitado las comprobaciones de que el fichero existe, etc):

Código asp:
Ver original
  1. Response.Clear
  2.  
  3. Set objStream = Server.CreateObject("ADODB.Stream")
  4. objStream.Open
  5. objStream.Type = adTypeBinary
  6. objStream.LoadFromFile Server.mappath("/informes/F" & [B]destino [/B]& ".asp")
  7.            
  8. Response.Clear
  9. '*********************
  10. 'AL nombre del fichero le pongo extenison PDF en lugar de ASP para que
  11. 'el cambio de extension sea transparente al usuario
  12. '*********************
  13. Response.AddHeader "Content-Disposition", "attachment; filename="&destino &".pdf"
  14. Response.Charset = "UTF-8"
  15. Response.ContentType = "application/pdf"
  16. Response.BinaryWrite objStream.Read
  17. Response.Flush
  18. objStream.Close

Si en el navegador intento meter directamente la ruta del fichero "/informes/F" & destino & ".asp" obtengo el siguiente error, por lo tanto nadie podrá acceder a ese informe directamente.

Cita:
Tipo de error:
Páginas Active Server, ASP 0116 (0x80004005)
El bloque Script no contiene la etiqueta de cierre de la secuencia de comandos (%>).
/informes/fichero.asp, línea 637
Perfecto