ASP.Net Descargar el archivo al navegador del cliente
browser download (2)
Intenta cambiarlo a
Response.Clear();
Response.ClearHeaders();
Response.ClearContent();
Response.AddHeader("Content-Disposition", "attachment; filename=" + file.Name);
Response.AddHeader("Content-Length", file.Length.ToString());
Response.ContentType = "text/plain";
Response.Flush();
Response.TransmitFile(file.FullName);
Response.End();
Estoy escribiendo una página de prueba simple para descargar un archivo de texto a un navegador al hacer clic en el botón. Estoy recibiendo un error realmente extraño que nunca he visto antes. ¿Alguna idea?
El error se produce en ''Response.End ();'' y el archivo nunca llega al navegador del cliente
Código:
string filePath = "C://test.txt";
FileInfo file = new FileInfo(filePath);
if (file.Exists)
{
Response.ClearContent();
Response.AddHeader("Content-Disposition", "attachment; filename=" + file.Name);
Response.AddHeader("Content-Length", file.Length.ToString());
Response.ContentType = "text/plain";
Response.TransmitFile(file.FullName);
Response.End();
}
Error:
No se puede evaluar la expresión porque el código está optimizado o un marco nativo está en la parte superior de la pila de llamadas.
Solo una pequeña adición a la solución anterior si tiene problemas con el nombre del archivo descargado ...
Response.AddHeader("Content-Disposition", "attachment; filename=/"" + file.Name + "/"");
Esto devolverá el nombre exacto del archivo, incluso si contiene espacios u otros caracteres.