Я пытаюсь передать файл PDF. Большинство файлов открываются без проблем, но иногда они терпят неудачу. Когда он терпит неудачу, он также выглядит как размер файла меньше исходного. Например, я пытался открыть файл 47K, но когда потоковый вывод в браузер составляет всего 44.5K. Когда вы проверяете размер потока (result.FileStream
), его 47K, как и предполагалось.Почему размер буфера меняет мой поток?
Я использую Stream.Read для вывода файла в браузер. Когда у меня была проблема, я использовал буфер размером 10000 байт. Однако, когда я изменил размер буфера от 10000 до 1000, проблема исчезла, и я смог записать файл. Я не могу объяснить, почему изменение размера буфера приводит к тому, что потоковая передача ведет себя по-разному.
Вот код, я использую result.FileStrea
м имеет тип потока:
using (result.FileStream)
{
int length;
const int byteSize = 1000;
var buffer = new byte[byteSize];
while ((length = result.FileStream.Read(buffer, 0, byteSize)) > 0 && Response.IsClientConnected)
{
Response.OutputStream.Write(buffer, 0, length);
Response.Flush();
}
}
Response.Close();
Пожалуйста, просветите меня, потому что я определенно не понимаю.
Вы человек. Это была проблема. +1 – Vadim