Descarga de archivos

19/07/2005 - 21:47 por Juan P. Hoyos | Informe spam
Estoy generando un Archivo XML el cual sera descargado desde una pagina web.

Cuando el usuario termina de descargar el archivo xml hay que proceder a
borrarlo del servidor.

Como puedo hacer esta operacion e venido intentando lo siguinte :

Response.AppendHeader("content-disposition","attachment; filename=" +
"DFlower.xml");
Response.ContentType = "text/plain";
Response.WriteFile(HttpContext.Current.Server.MapPath(ConfigurationSettings.AppSettings["URL"].ToString()
+ strNameXml));
Response.End();
File.Delete(HttpContext.Current.Server.MapPath(ConfigurationSettings.AppSettings["URL"].ToString()
+ strNameXml));

Utiliza el Response.End() para parar la ejecucion de la pagina y asi saber
cuando el usuario termino la descarga del archivo luego del Response.End()
necesito eliminar el archivo del servidor pero despues del response.end() no
se ejecuta mas codigo.

SUGERENCIAS ??????

Que puedo hacer o como mas lo puedo hacer.

Preguntas similare

Leer las respuestas

#1 Octavio Hernandez
19/07/2005 - 19:20 | Informe spam
Juan,

Prueba a poner la llamada a File.Delete() DELANTE de la llamada a
Response.End() .
Y delante de File.Delete utiliza

Response.GetResponseStream().Flush();

para que el contenido del fichero se "vuelque" al flujo de salida HTTP antes
de que lo borremos.

Slds -- Octavio

"Juan P. Hoyos" escribió en el mensaje
news:
Estoy generando un Archivo XML el cual sera descargado desde una pagina
web.

Cuando el usuario termina de descargar el archivo xml hay que proceder a
borrarlo del servidor.

Como puedo hacer esta operacion e venido intentando lo siguinte :

Response.AppendHeader("content-disposition","attachment; filename=" +
"DFlower.xml");
Response.ContentType = "text/plain";

Response.WriteFile(HttpContext.Current.Server.MapPath(ConfigurationSettings.AppSettings["URL"].ToString()
+ strNameXml));
Response.End();

File.Delete(HttpContext.Current.Server.MapPath(ConfigurationSettings.AppSettings["URL"].ToString()
+ strNameXml));

Utiliza el Response.End() para parar la ejecucion de la pagina y asi saber
cuando el usuario termino la descarga del archivo luego del Response.End()
necesito eliminar el archivo del servidor pero despues del response.end()
no se ejecuta mas codigo.

SUGERENCIAS ??????

Que puedo hacer o como mas lo puedo hacer.

Respuesta Responder a este mensaje
#2 Norberto Planchart
19/07/2005 - 22:47 | Informe spam
A ver...
y si:
1 copias el contenido del archivo xml a una variable string
2 te borras el archivo del disco
3 le envías el contenido de la variable al explorador

o mas fácil cargas el contenido del xml en un xmlDocument y te borras el
archivo del disco.


XmlDocument xd1 = new XmlDocument();
xd1.Load(Server.MapPath("Ejemplo.xml"));

string s = xd1.InnerXml.ToString();

//aqui te eliminas el archivo

Response.Clear();

Response.ContentType ="no se cual" //

Response.Write(s);

Response.End();
Norberto Planchart, MCSD.Net
Caracas - Venezuela
-Como no sabían que era imposible, lo hicieron.-




"Juan P. Hoyos" wrote in message
news:
Estoy generando un Archivo XML el cual sera descargado desde una pagina
web.

Cuando el usuario termina de descargar el archivo xml hay que proceder a
borrarlo del servidor.

Como puedo hacer esta operacion e venido intentando lo siguinte :

Response.AppendHeader("content-disposition","attachment; filename=" +
"DFlower.xml");
Response.ContentType = "text/plain";

Response.WriteFile(HttpContext.Current.Server.MapPath(ConfigurationSettings.AppSettings["URL"].ToString()
+ strNameXml));
Response.End();

File.Delete(HttpContext.Current.Server.MapPath(ConfigurationSettings.AppSettings["URL"].ToString()
+ strNameXml));

Utiliza el Response.End() para parar la ejecucion de la pagina y asi saber
cuando el usuario termino la descarga del archivo luego del Response.End()
necesito eliminar el archivo del servidor pero despues del response.end()
no se ejecuta mas codigo.

SUGERENCIAS ??????

Que puedo hacer o como mas lo puedo hacer.

Respuesta Responder a este mensaje
#3 Norberto Planchart
19/07/2005 - 23:07 | Informe spam
Asi mejor. Disculpa el pasticho de código que te pase antes.

string m_ruta;
string m_archivo ="ejemplo.xml";
m_ruta=Server.MapPath(m_archivo);

XmlDocument xd1 = new XmlDocument();
xd1.Load(m_ruta);

string s = xd1.InnerXml.ToString();

System.IO.FileInfo file = new System.IO.FileInfo(m_ruta);
file.Delete();

Response.Clear();
Response.AddHeader("Content-Disposition", "attachment; filename=" +
m_archivo);
Response.ContentType ="application/octet-stream"; //
Response.Write(s);
Response.End();

Norberto Planchart, MCSD.Net
Caracas - Venezuela
-Como no sabían que era imposible, lo hicieron.-


"Juan P. Hoyos" wrote in message
news:
Estoy generando un Archivo XML el cual sera descargado desde una pagina
web.

Cuando el usuario termina de descargar el archivo xml hay que proceder a
borrarlo del servidor.

Como puedo hacer esta operacion e venido intentando lo siguinte :

Response.AppendHeader("content-disposition","attachment; filename=" +
"DFlower.xml");
Response.ContentType = "text/plain";

Response.WriteFile(HttpContext.Current.Server.MapPath(ConfigurationSettings.AppSettings["URL"].ToString()
+ strNameXml));
Response.End();

File.Delete(HttpContext.Current.Server.MapPath(ConfigurationSettings.AppSettings["URL"].ToString()
+ strNameXml));

Utiliza el Response.End() para parar la ejecucion de la pagina y asi saber
cuando el usuario termino la descarga del archivo luego del Response.End()
necesito eliminar el archivo del servidor pero despues del response.end()
no se ejecuta mas codigo.

SUGERENCIAS ??????

Que puedo hacer o como mas lo puedo hacer.

Respuesta Responder a este mensaje
#4 Juan P. Hoyos
19/07/2005 - 23:29 | Informe spam
Norberto mUchisimas gracias a sido de gran ayuda tu concejo.

Una pregunta mas!!!!

hay alguina manera de seguir ejecutando codigo despues del response.end()
?????

sin el response.end() se enloquece la operacion ya que incluye todo el
codigo html en el string , por lo que veo necesario seguir usandolo, pero
inmediataamente despues que el usuario descarge el archivo nesecito ejecutar
mas codigo !!

Como puedo realizar esto ?

"Norberto Planchart" wrote in message
news:
A ver...
y si:
1 copias el contenido del archivo xml a una variable string
2 te borras el archivo del disco
3 le envías el contenido de la variable al explorador

o mas fácil cargas el contenido del xml en un xmlDocument y te borras el
archivo del disco.


XmlDocument xd1 = new XmlDocument();
xd1.Load(Server.MapPath("Ejemplo.xml"));

string s = xd1.InnerXml.ToString();

//aqui te eliminas el archivo

Response.Clear();

Response.ContentType ="no se cual" //

Response.Write(s);

Response.End();
Norberto Planchart, MCSD.Net
Caracas - Venezuela
-Como no sabían que era imposible, lo hicieron.-




"Juan P. Hoyos" wrote in message
news:
Estoy generando un Archivo XML el cual sera descargado desde una pagina
web.

Cuando el usuario termina de descargar el archivo xml hay que proceder a
borrarlo del servidor.

Como puedo hacer esta operacion e venido intentando lo siguinte :

Response.AppendHeader("content-disposition","attachment; filename=" +
"DFlower.xml");
Response.ContentType = "text/plain";

Response.WriteFile(HttpContext.Current.Server.MapPath(ConfigurationSettings.AppSettings["URL"].ToString()
+ strNameXml));
Response.End();

File.Delete(HttpContext.Current.Server.MapPath(ConfigurationSettings.AppSettings["URL"].ToString()
+ strNameXml));

Utiliza el Response.End() para parar la ejecucion de la pagina y asi
saber cuando el usuario termino la descarga del archivo luego del
Response.End() necesito eliminar el archivo del servidor pero despues del
response.end() no se ejecuta mas codigo.

SUGERENCIAS ??????

Que puedo hacer o como mas lo puedo hacer.





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