zoukankan      html  css  js  c++  java
  • TransmitFile下载文件(部分转载)

    例子代码:

    public void Down()
    {
    TransmitFile(@"/File/KBPub.zip");
    }
    public void TransmitFile(string filePath) //filePath 下载的文件的相对路径
    {
    try
    {
    filePath = Server.MapPath(filePath);
    if (System.IO.File.Exists(filePath))
    {
    FileInfo info = new FileInfo(filePath);
    long fileSize = info.Length;
    System.Web.HttpContext.Current.Response.Clear();
    System.Web.HttpContext.Current.Response.ContentType = "application/x-zip-compressed";
    System.Web.HttpContext.Current.Response.AddHeader("Content-Disposition", "attachment;filename=" + filePath.Substring(filePath.LastIndexOf("\\") + 1)); //filename 下载后显示的文件名
    //不指明Content-Length用Flush的话不会显示下载进度的
    System.Web.HttpContext.Current.Response.AddHeader("Content-Length", fileSize.ToString());
    System.Web.HttpContext.Current.Response.TransmitFile(filePath, 0, fileSize);
    System.Web.HttpContext.Current.Response.Flush();
    }
    }
    catch
    { }
    finally
    {
    System.Web.HttpContext.Current.Response.Close();
    }

    }

    WriteFile方式:

    public void WriteFile(string filePath)
    {
    try
    {
    filePath = Server.MapPath(filePath);
    if (System.IO.File.Exists(filePath))
    {
    FileInfo info = new FileInfo(filePath);
    long fileSize = info.Length;
    System.Web.HttpContext.Current.Response.Clear();
    System.Web.HttpContext.Current.Response.ContentType = "application/octet-stream";
    System.Web.HttpContext.Current.Response.AddHeader("Content-Disposition", "attachement;filename=" + Server.UrlEncode(info.FullName));
    //指定文件大小
    System.Web.HttpContext.Current.Response.AddHeader("Content-Length", fileSize.ToString());
    System.Web.HttpContext.Current.Response.WriteFile(filePath, 0, fileSize);
    System.Web.HttpContext.Current.Response.Flush();
    }
    }
    catch
    { }
    finally
    {
    System.Web.HttpContext.Current.Response.Close();
    }
    }

  • 相关阅读:
    .NET 4.5 is an in-place replacement for .NET 4.0
    python Argparse模块的使用
    linux的fork(), vfork()区别
    Linux 的 strace 命令
    NTFS系统的ADS交换数据流
    Git和.gitignore
    GIT常用命令
    OSChina码云试用
    tcpdump用法
    linux网卡混杂模式
  • 原文地址:https://www.cnblogs.com/jinghuimin/p/5000808.html
Copyright © 2011-2022 走看看