Почему файлы .docx повреждены при загрузке со страницы ASP.NET?

У меня есть следующий код для доставки пользователю вложенных страниц:

private void GetFile(string package, string filename)
{
    var stream = new MemoryStream();

    try
    {
        using (ZipFile zip = ZipFile.Read(package))
        {
            zip[filename].Extract(stream);
        }
    }
    catch (System.Exception ex)
    {
        throw new Exception("Resources_FileNotFound", ex);
    }

    Response.ClearContent();
    Response.ClearHeaders();
    Response.ContentType = "application/unknown";

    if (filename.EndsWith(".docx"))
    {
        Response.ContentType = "application/vnd.openxmlformats-officedocument.wordprocessingml.document";
    }

    Response.AddHeader("Content-Disposition", "attachment;filename=\"" + filename + "\"");
    Response.BinaryWrite(stream.GetBuffer());
    stream.Dispose();
    Response.Flush();
    HttpContext.Current.ApplicationInstance.CompleteRequest();
}

Проблема в том, что все поддерживаемые файлы работают должным образом (jpg, gif, png, pdf, doc и т. Д.), Но при загрузке файлы .docx повреждены и их необходимо исправить в Office для открытия.

Сначала я не знал, была ли проблема в распаковке zip-файла, содержащего .docx, поэтому вместо того, чтобы помещать выходной файл только в ответ, я сначала сохранил его, и файл успешно открылся, поэтому я знаю, что проблема должна быть при написании ответа.

Ты знаешь, что может происходить?

Ответы на вопрос(8)

Ваш ответ на вопрос