es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Mantén el navegador en espera después del comando Response.BinaryWrite.

Tengo una página ASPX que cuando el navegador se dirige a ella devuelve HTML. En algunos casos quiero devolver un archivo pero hacer que el navegador continúe esperando por el HTML. He intentado diferentes cosas pero tan pronto como se ejecuta “Response.BinaryWrite” el navegador descarga el archivo y deja de esperar. Mi pregunta es si es remotamente posible lograr lo que estoy intentando hacer.

Lo que estoy haciendo actualmente es que el HTML devuelto también descarga el archivo. Eso funciona bien pero deja los archivos en el servidor. Quiero eliminarlos justo después de que se complete la descarga.

Gracias

Actualización

protected void ReportViewer1_Load(object sender, EventArgs e)
{
try
{
// some code only relevant to reportviewer
}
catch (Exception ex)
{
Response.Write(ex.ToString());
}
}

Tags:  ,

Answer

  1. Avatar for davy.ai

    No es posible lograr lo que estás intentando hacer. Cuando utilizas Response.BinaryWrite para enviar un archivo al navegador, el servidor deja de enviar cualquier otro dato al navegador. La razón de esto es porque cuando el navegador recibe el archivo, lo interpreta como el final de la respuesta y deja de esperar más datos.

    Una solución a tu problema podría ser utilizar Ajax para descargar el archivo después de que el HTML haya sido devuelto al navegador. De esta manera, el navegador puede continuar esperando a que el HTML termine de cargarse antes de iniciar la descarga. Otra solución podría ser utilizar un iframe separado para iniciar la descarga, de manera que se ejecute en segundo plano y no interfiera con la respuesta HTML.

    En cuanto a limpiar el archivo en el servidor después de que se haya completado la descarga, puedes utilizar un script del lado del servidor para eliminar el archivo después de que haya sido descargado. Por ejemplo, puedes utilizar FileSystemObject en ASP para eliminar el archivo una vez que la descarga esté completa.

Comments are closed.