开发者

Problem downloading a 25MB file - the 8MB file downloads without problem (ASP.NET)

I have two files at the same location but the big one, when is about to finish download, gives an error (both in IE and Firefox).

I use the following code:

public static void DownloadZipFile (string filename, bool notifyMe)
{
    HttpContext context = HttpContext.Current;
    HttpServerUtility server = context.Server;
    bool ok = false;
    try
    {
        string file = string.Format ("~/contents/licensing/members/downloads/{0}", filename);
        string server_file = server.MapPath (file);

        HttpResponse response = context.Response;
        //response.BufferOutput = false;
        response.ContentType = "application/zip";
        string value = string.Format ("attachment; filename={0}", filename);
        response.AppendHeader ("Content-Disposition", value);
        FileInfo f = new FileInfo (server_file);
       开发者_Go百科 long size = f.Length;
        response.TransmitFile (server_file, 0, size);
        response.Flush ();
        ok = true;
        response.End ();
    }
    catch (Exception ex)
    {
        Utilities.Log (ex);
    }
    finally
    {
        if (ok && notifyMe)
            NotifyDownload (filename);
    }
}

Any ideas?


Response.End() calls Response.Flush(). Try removing the Flush call.


The solution to this problem is to add the line:

response.AddHeader("Content-Length",size.ToString());

before the call to TransmitFile (). The credits go to Jim Schubert (see his comment above).

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜