Windows 2000 y Response
Publicado por Peliculas (1 intervención) el 22/11/2006 10:32:00
Hola a todos. Tengo un problema con el envio de un fichero a través de response con windows 2000. El codigo que utilizo es :
MemoryStream fichero = new MemoryStream();
Response.Buffer = true;
foreach (Dato dato in datos)
{
string datosFila;
//pasa los datos a string
Byte[] datosBinarios = System.Text.ASCIIEncoding.ASCII.GetBytes(datosFila.ToCharArray());
fichero.Write(datosBinarios,0,Convert.ToInt32(datosFila.Length));
}
string strNombreFichero = DateTime.Now.ToString("yyyyMMdd") + "_exportacion";
switch (comboBoxFormato.SelectedValue)
{
case "01": //Excel
strNombreFichero += ".xls";
break;
case "02": //Txt
strNombreFichero += ".txt";
break;
default:
throw new Exception("Tipo no soportado");
}
Response.AppendHeader("Content-Disposition", "attachment; filename=" + strNombreFichero);
Response.ContentType="application/octet-stream";
Response.OutputStream.Write(
fichero.ToArray(), 0,
(int)fichero.Length);
Response.Flush();
Response.Close();
Pues bien. Este código funciona perfectamente con windows xp, pero en windows 2000, al mostrar la ventana para abrir o guardar el fichero, si pulsas guardar(aunque luego no lo guardes), al salir de esta ventana, si intentamos volver a enviar los datos, saltan todos los validadores de la página, pero no porque fallen, ya que no comprueba ninguno, ni siquiera el código javascript. Sin embargo pinchando cualquier otro boton todo va bien. ¿Alguien sabe a que es debido esto?
Muchas gracias por adelantado
MemoryStream fichero = new MemoryStream();
Response.Buffer = true;
foreach (Dato dato in datos)
{
string datosFila;
//pasa los datos a string
Byte[] datosBinarios = System.Text.ASCIIEncoding.ASCII.GetBytes(datosFila.ToCharArray());
fichero.Write(datosBinarios,0,Convert.ToInt32(datosFila.Length));
}
string strNombreFichero = DateTime.Now.ToString("yyyyMMdd") + "_exportacion";
switch (comboBoxFormato.SelectedValue)
{
case "01": //Excel
strNombreFichero += ".xls";
break;
case "02": //Txt
strNombreFichero += ".txt";
break;
default:
throw new Exception("Tipo no soportado");
}
Response.AppendHeader("Content-Disposition", "attachment; filename=" + strNombreFichero);
Response.ContentType="application/octet-stream";
Response.OutputStream.Write(
fichero.ToArray(), 0,
(int)fichero.Length);
Response.Flush();
Response.Close();
Pues bien. Este código funciona perfectamente con windows xp, pero en windows 2000, al mostrar la ventana para abrir o guardar el fichero, si pulsas guardar(aunque luego no lo guardes), al salir de esta ventana, si intentamos volver a enviar los datos, saltan todos los validadores de la página, pero no porque fallen, ya que no comprueba ninguno, ni siquiera el código javascript. Sin embargo pinchando cualquier otro boton todo va bien. ¿Alguien sabe a que es debido esto?
Muchas gracias por adelantado
Valora esta pregunta


0