2
我正在嘗試傳輸pdf文件。大多數文件沒有任何問題,但有時會失敗。當它失敗時,它看起來像文件大小比原來的小。例如,我試圖打開一個47K文件,但當流式輸出到瀏覽器時,它只有44.5K。當檢查流的大小(result.FileStream
)時,它應該是47K。爲什麼緩衝區大小會改變我的流輸出?
我正在使用Stream.Read將文件輸出到瀏覽器。當我遇到問題時,我使用的是10000字節的緩衝區大小。但是,當我將緩衝區大小從10000更改爲1000時,問題消失並且我能夠訪問該文件。我無法解釋爲什麼緩衝區大小的變化使得流式傳輸的行爲有所不同。
下面是我使用result.FileStrea
米代碼Stream類型:
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 2010-01-29 23:58:10