Проблемы ASP.NET Response.OutputStream - PullRequest
1 голос
/ 05 января 2011

Я пытаюсь отправить двоичные данные клиенту, используя Response.OutputStream, но у меня, похоже, с этим проблемы. Мой код довольно прост и в значительной степени идентичен рабочему коду, который я использовал ранее, но ничего не происходит на клиенте при запуске кода.

Response.Buffer = false;
Response.ContentType = @"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet";
Response.AppendHeader("content-length", genstream.Length.ToString());
Response.AppendHeader("content-disposition", string.Format("attachment; filename={0}.xlsx", filename));

byte[] buffer = new byte[1024];
genstream.Position = 0;

int n;
while ((n  = genstream.Read(buffer, 0, 1024) ) > 0)
{
    Response.OutputStream.Write(buffer, 0, n);
}

Если там есть код в порядке, который, кажется, может быть причиной такого поведения?

1 Ответ

2 голосов
/ 05 января 2011

Используйте функцию Response BinaryWrite и команду Flush. Например:

Response.ContentType = @"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet";
Response.BinaryWrite(buffer);
Response.Flush();
...