ASP.NET 不预览直接下载

public void downloadfile(string s_fileName)
    {
        HttpContext.Current.Response.ContentType = "application/ms-download";
        string s_path = HttpContext.Current.Server.MapPath("~/") + s_fileName;
        System.IO.FileInfo file = new System.IO.FileInfo(s_path);
        HttpContext.Current.Response.Clear();
        HttpContext.Current.Response.AddHeader("Content-Type", "application/octet-stream");
        HttpContext.Current.Response.Charset = "utf-8";

        string filename = file.Name;
        string userAgent = HttpContext.Current.Request.ServerVariables["http_user_agent"].ToLower();
        //处理firefox保存时文件名乱码的问题  
        if (userAgent.IndexOf("firefox") == -1)
            filename = HttpUtility.UrlEncode(filename, System.Text.Encoding.UTF8);

        HttpContext.Current.Response.AddHeader("Content-Disposition", "attachment;filename=" + filename);
        HttpContext.Current.Response.AddHeader("Content-Length", file.Length.ToString());
        HttpContext.Current.Response.WriteFile(file.FullName);
        HttpContext.Current.Response.Flush();
        HttpContext.Current.Response.Clear();
        HttpContext.Current.Response.End();
    }

 

posted @ 2018-07-09 10:50  mcluzhi  阅读(222)  评论(0编辑  收藏  举报