我们尝试实现一个 download.aspx 来控制我们的源,例如特定客户端的图像。我们使用download.aspx.cs中的缓冲方法。代码如下所示:
using (var fs = new FileStream(_path, FileMode.Open, FileAccess.Read))
{
Response.BufferOutput = false; // to prevent buffering
byte[] buffer = new byte[1024];
int bytesRead = 0;
if (_file.Extension == ".pdf")
{
Response.AddHeader("Content-Disposition", "inline; filename=" + _file.Name);
}
else
{
Response.AddHeader("Content-Disposition", "attachment; filename=" + _file.Name);
}
Response.AddHeader("Content-Length", _file.Length.ToString());
Response.ContentType = ReturnExtension(_file.Extension.ToLower());
while ((bytesRead = fs.Read(buffer, 0, buffer.Length)) > 0)
{
Response.OutputStream.Write(buffer, 0, bytesRead);
}
}
下载单个文件时效果很好。但是,在我们的情况下,我们尝试同时加载大约 20 张图像。它变得非常缓慢。以下是捕获的屏幕:-
我们查不出原因。我们想知道这是一种控制文件的实用方法,或者还有其他更好的方法来实现它。