Cómo descargar archivos en ASP.NETPero hay algunos problemas con este método de descarga: 1. Los archivos que no existen no se pueden descargar: por ejemplo, si queremos descargar un archivo dinámicamente (temporalmente) generado por el archivo del programa (es decir, un archivo que no existe originalmente se genera dinámicamente), no podemos descargarlo. 2. No se puede descargar un archivo almacenado en la base de datos: este es un problema similar, el archivo realmente no existe, simplemente está almacenado en algún lugar de la base de datos (un campo en el registro) y, por lo tanto, no se puede descargar. 3. Archivos almacenados en la base de datos: Este es un problema similar, el archivo realmente no existe, simplemente está almacenado en algún lugar de la base de datos (un campo en un registro) y luego no se puede descargar. 3. No se pueden descargar archivos que no existen en la carpeta web: el archivo existe, pero la carpeta no es una carpeta web que pueda compartirse. Por ejemplo, la ubicación del archivo es C:/winnt, y usted lo haría. ¿No desea utilizar la carpeta como carpeta web? No puede utilizar la redirección para apuntar a esta ubicación, por lo que el archivo no se puede descargar. 4. Después de descargar el archivo, la página original desaparecerá. 1. El archivo puede ser generado dinámicamente por el programa ASP.NET en lugar de existir realmente en el lado del servidor. 2. O puede existir en alguna ubicación física en el lado del servidor, pero no queremos exponer esa ubicación (si es así); la ubicación es pública, es probable que un usuario no autorizado ingrese la URL en la barra de URL para obtener el archivo directamente). 3. O la ubicación no está en la carpeta donde se encuentra la ruta virtual del sitio web.
(Por ejemplo: C:/Windows/System32...) En este momento, debemos usar otro método: Función compartida DownloadFile(ByVal WebForm As System.Web.UI.Page, ByVal FileNameWhenUserDownload As String, ByVal FileBody As String) WebForm .Response.ClearHeaders() WebForm.Response.Clear() WebForm.Response.Expires = 0 WebForm.Response.Buffer = True WebForm.Response.Clear() WebForm.Response.Clear()WebForm.Response.AddHeader(Aceptar-Idioma , zh-tw) 'Nombre de archivo WebForm.Response.AddHeader(disposición-contenido, archivo adjunto; nombre de archivo= amp; Chr(34) amp; System.Web.HttpUtility.UrlEncode(FileNameWhenUserDownload, System.Text.Encoding.UTF8) amp; Chr(34)) WebForm.Response.AddHeader(Accept-Language, zh-tw) 'Nombre de archivo ContentType = Application/octet-stream 'FileBody WebForm.Response.Write(FileBody) WebForm.Response.End() Función final Lo anterior código Descargue un archivo de texto generado dinámicamente Si el archivo ya existe en la ruta de la entidad en el lado del servidor, ejecute la siguiente función: Shared Sub DownloadFile(ByVal WebForm As System.Web.UI.Page, ByVal FileNameWhenUserDownload As String, ByVal FilePath As. Cadena)WebForm .Response.ClearHeaders() WebForm.Response.Clear() WebForm.Response.Expires = 0 WebForm.Response.Buffer = True WebForm.Response.Clear()WebForm.Response.AddHeader(Accept-Language, zh-tw ) 'Nombre de archivo WebForm.Response.AddHeader(disposición-contenido, archivo adjunto; nombre de archivo= amp; Chr(34) amp; System.Web.HttpUtility() 'NombredearchivoWeb.HttpUtility.UrlEncode(NombreDeArchivoCuandoUserDownload, System.Text.Encoding.UTF8) amplificador; Chr(34)).