/**/ /// <summary> /// 文件下载 /// </summary> /// <param name="filePath">文件物理地址</param> /// <returns>void</returns> public void DownloadFile( string filePath) ... { string saveFileName = System.IO.Path.GetFileName(filePath); DownloadFile(filePath, saveFileName); } /**/ /// <summary> /// 文件下载 /// </summary> /// <param name="filePath">文件物理地址</param> /// <param name="saveFileName">默认保存的文件名</param> /// <returns>void</returns> public void DownloadFile( string filePath, string saveFileName) ... { if (!System.IO.File.Exists(filePath)) ...{ System.Web.HttpContext.Current.Response.Write("<script>window.alert('你所要下载的文件已经不存在!');</script>"); return; } string contentType = "application/unknown"; try ...{ string extension = System.IO.Path.GetExtension(filePath); Microsoft.Win32.RegistryKey classesRoot = Microsoft.Win32.Registry.ClassesRoot; Microsoft.Win32.RegistryKey extensionKey = classesRoot.OpenSubKey(extension); contentType = extensionKey.GetValue("Content Type").ToString(); } catch ...{ } System.Web.HttpContext.Current.Response.Clear(); System.Web.HttpContext.Current.Response.Buffer = true; System.Web.HttpContext.Current.Response.ContentType = contentType; System.Web.HttpContext.Current.Response.ContentEncoding = System.Text.Encoding.UTF8; System.Web.HttpContext.Current.Response.AppendHeader("Content-Disposition", "attachment;filename=" + HttpUtility.UrlPathEncode(saveFileName)); System.Web.HttpContext.Current.Response.WriteFile(filePath); System.Web.HttpContext.Current.Response.Flush(); System.Web.HttpContext.Current.Response.Clear(); System.Web.HttpContext.Current.Response.Close(); System.Web.HttpContext.Current.Response.End(); }