text WebForm - 大型档案下载

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了text WebForm - 大型档案下载相关的知识,希望对你有一定的参考价值。

public class Download : IHttpHandler
{
    public void ProcessRequest(HttpContext context)
    {
        var index = context.Request.Params["index"];

        var fileName = "test.txt";

        //取得檔案在 Server 上的實體路徑
        var filePath = context.Server.MapPath("~/File/" + fileName);

        //緩衝區大小,每次讀取100KB
        var bufferSize = 102400;
        var buffer = new byte[bufferSize];
        var fs = new FileStream(filePath,
            FileMode.Open, FileAccess.Read);
        //輸出檔案的位元組總長度
        var outputLength = fs.Length;
        //每次讀取的位元組長度
        var readLength = 0;

        context.Response.Clear();
        context.Response.AddHeader(
            "Content-Length", outputLength.ToString());
        context.Response.ContentType = "application/octet-stream";
        context.Response.AddHeader(
            "content-disposition",
            "attachment; filename=" + fileName);

        //剩餘位元組長度大於零,且與瀏覽器連接著,就繼續執行
        while (outputLength > 0 && context.Response.IsClientConnected)
        {
            readLength = fs.Read(buffer, 0, bufferSize);
            context.Response.OutputStream.Write(buffer, 0, readLength);
            context.Response.Flush();
            outputLength = outputLength - readLength;
        }

        fs.Close();
        context.Response.End();
    }

    public bool IsReusable
    {
        get
        {
            return false;
        }
    }
}

以上是关于text WebForm - 大型档案下载的主要内容,如果未能解决你的问题,请参考以下文章

C4D大型场景渲染优化专业级档案

WebForm——如何获得select被选中option的value和text和......

webform复合控件

Google Play 商店将提供现金购买、部分下载即可使用大型 app 等新功能

Webform(简单控件复合控件)

WebForm中 页面传参的总结