Пример #1
0
        /// <summary>
        /// 文件下载(文件推送型)
        /// </summary>
        /// <param name="filename">文件名含相对路径</param>
        /// <param name="isFullPath">是否物理地址1是 0 不是</param>
        public static void FileDown(string filename, string isFullPath)
        {
            if (filename != "")
            {
                if (isFullPath == "0")
                {
                    if (CFun.Left(filename, 1) == "/")
                    {
                        filename = filename.Replace("/", "\\");
                    }
                    if (CFun.Left(filename, 1) == @"\")
                    {
                        filename = System.Web.HttpContext.Current.Request.PhysicalApplicationPath + CFun.Right(filename, filename.Length - 1);
                    }
                    else
                    {
                        filename = System.Web.HttpContext.Current.Request.PhysicalApplicationPath + filename;
                    }
                }

                System.IO.FileInfo file = new System.IO.FileInfo(filename);

                if (file.Exists)
                {
                    System.Web.HttpContext.Current.Response.Clear();
                    System.Web.HttpContext.Current.Response.AddHeader("Content-Disposition", "attachment; filename=" + HttpUtility.UrlEncode(file.Name, System.Text.Encoding.UTF8));
                    System.Web.HttpContext.Current.Response.AddHeader("Content-Length", file.Length.ToString());
                    System.Web.HttpContext.Current.Response.ContentType = "application/octet-stream";
                    System.Web.HttpContext.Current.Response.Filter.Close();
                    System.Web.HttpContext.Current.Response.WriteFile(file.FullName);
                    System.Web.HttpContext.Current.Response.End();
                }
                else
                {
                    CFun.JsAlerT("文件不存在!");
                    //System.Web.HttpContext.Current.Response.Redirect("/error.aspx?msg=文件不存在!");
                }
            }
        }