Проблема при загрузке файла размером 25 МБ - файл размером 8 МБ загружается без проблем (ASP.NET) - PullRequest
0 голосов
/ 01 июля 2010

У меня два файла в одном месте, но большой, когда он заканчивает загрузку, выдает ошибку (как в IE, так и в Firefox).

Я использую следующий код:

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);
        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);
    }
}

Есть идеи?

Ответы [ 2 ]

0 голосов
/ 04 июля 2010

Решением этой проблемы является добавление строки:

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

перед вызовом TransmitFile ().Авторы получают Джим Шуберт (см. Его комментарий выше).

0 голосов
/ 01 июля 2010

Response.End () вызывает Response.Flush (). Попробуйте удалить вызов Flush.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...