caja de diálogo descargar y ASP

06/08/2007 - 17:20 por Antonio Liberal | Informe spam
Hola buenas.

Os explico lo que me pasa, por si alguien sabe como solucionarlo.
Tengo una página html tal que así:

<html>
<head>
<title>SAFERSOFT S.L.</title>
</head>
<body bgcolorÆC6C6 onload='CallASP();'>
<script language='JavaScript'>
function CallASP()
{
window.open('/pagina.asp?formato=xls', '_self');
}
</script>
</body>
</html>

La página 'pagina.asp' me genera un fichero (con el BinaryWrite), de manera
que cuando se carga la página html, me saca la caja de diálogo de descarga
del internet explorer, dándome las opciones de Abrir, Guardar, Cancelar...
Bueno, después de tanto rollo, la historia está en que después de hacer la
acción de la caja de diálogo, me gustaría cerrar la página html de alguna
forma.
¿Alguien sabe como hacerlo?

Desde ya, muchas gracias.

Preguntas similare

Leer las respuestas

#1 Jose A. Fernandez
06/08/2007 - 19:27 | Informe spam
Hola Antonio
Porque en vez de una pagina pagina que abris mediante js con window.open no
colocas el enlace directo
<a href="/pagina.asp?formato=xls">formato XLS</a>
y en la pagina en cuestion colocas algo asi:

Response.buffer=true
Response.Clear

Select Case TRIM(UCASE(formato))
Case "XLS"
tipoContenido = "application/vnd.ms-excel"
Case "DOC"
tipoContenido = "application/vnd.ms-word"
End select

Response.ContentType = tipoContenido
' agrega a la cabecera el nombre del documento
Response.AddHeader "content-disposition",
"attachment;filename=nombreDOC." & formato


{aqui va todo el contenido para XLS}

Response.Flush()
Response.End()


Con esto no necesitaras utilizar js, y ademas mediante la cabecera con el
ContentType correcto le dira al navegador que presente el dialogo de
guardar...

Espero que te sirva de ayuda o guia.
______________________
Jose A. Fernandez
blog: http://geeks.ms/blogs/fernandezja





"Antonio Liberal" wrote in
message news:
Hola buenas.

Os explico lo que me pasa, por si alguien sabe como solucionarlo.
Tengo una página html tal que así:

<html>
<head>
<title>SAFERSOFT S.L.</title>
</head>
<body bgcolorÆC6C6 onload='CallASP();'>
<script language='JavaScript'>
function CallASP()
{
window.open('/pagina.asp?formato=xls', '_self');
}
</script>
</body>
</html>

La página 'pagina.asp' me genera un fichero (con el BinaryWrite), de
manera
que cuando se carga la página html, me saca la caja de diálogo de descarga
del internet explorer, dándome las opciones de Abrir, Guardar, Cancelar...
Bueno, después de tanto rollo, la historia está en que después de hacer la
acción de la caja de diálogo, me gustaría cerrar la página html de alguna
forma.
¿Alguien sabe como hacerlo?

Desde ya, muchas gracias.


Respuesta Responder a este mensaje
#2 Antonio Liberal
07/08/2007 - 09:12 | Informe spam
En realidad todo empieza con un problema con el visor java del crystal
reports 9 y la exportación a ficheros que tiene... Cuando seleccionas un
tipo de exportación, el visor llama a la página asp y esta le devuelve el
fichero con un BinaryWrite. En IE6, perfecto, me saca el mensaje... Pero en
IE7, emite el sonido de página bloqueada y no me muestra el mensaje. En
cambio si hago que el visor llame a mi página y esta le devuelve lo del
JavaScript, entonces te saca el mensaje típico de que se ha bloqueado la
bajada del archivo, que pulses en la barra... y me funciona perfectamente.

Hago algo así:

* El visor llama a mi página asp.
* Mi página asp genera el código html y hace que llame a la página asp
original del visor en el load.

Lo del content-disposition y el contenttype ya lo había probado, pero en el
IE7 me sigue dando el problema.


"Jose A. Fernandez" escribió en el mensaje
news:
Hola Antonio
Porque en vez de una pagina pagina que abris mediante js con window.open


no
colocas el enlace directo
<a href="/pagina.asp?formato=xls">formato XLS</a>
y en la pagina en cuestion colocas algo asi:

Response.buffer=true
Response.Clear

Select Case TRIM(UCASE(formato))
Case "XLS"
tipoContenido = "application/vnd.ms-excel"
Case "DOC"
tipoContenido = "application/vnd.ms-word"
End select

Response.ContentType = tipoContenido
' agrega a la cabecera el nombre del documento
Response.AddHeader "content-disposition",
"attachment;filename=nombreDOC." & formato


{aqui va todo el contenido para XLS}

Response.Flush()
Response.End()


Con esto no necesitaras utilizar js, y ademas mediante la cabecera con el
ContentType correcto le dira al navegador que presente el dialogo de
guardar...

Espero que te sirva de ayuda o guia.
______________________
Jose A. Fernandez
blog: http://geeks.ms/blogs/fernandezja





"Antonio Liberal" wrote in
message news:
> Hola buenas.
>
> Os explico lo que me pasa, por si alguien sabe como solucionarlo.
> Tengo una página html tal que así:
>
> <html>
> <head>
> <title>SAFERSOFT S.L.</title>
> </head>
> <body bgcolorÆC6C6 onload='CallASP();'>
> <script language='JavaScript'>
> function CallASP()
> {
> window.open('/pagina.asp?formato=xls', '_self');
> }
> </script>
> </body>
> </html>
>
> La página 'pagina.asp' me genera un fichero (con el BinaryWrite), de
> manera
> que cuando se carga la página html, me saca la caja de diálogo de


descarga
> del internet explorer, dándome las opciones de Abrir, Guardar,


Cancelar...
> Bueno, después de tanto rollo, la historia está en que después de hacer


la
> acción de la caja de diálogo, me gustaría cerrar la página html de


alguna
> forma.
> ¿Alguien sabe como hacerlo?
>
> Desde ya, muchas gracias.
>
>


email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida