2

我需要授予用户访问受限文件的权限。正在考虑使用通用 webhandler 进行此操作。

这些文件可以变得相当大,至少 1.5GB。

我们需要尽可能少地使用 RAM/内存来提供这些文件。

目前,我们正在将此视为解决方案:

request.ContentType = "text/plain";
request.ContentLength = byteArray.Length;
Stream dataStream = request.GetRequestStream();
int buffersize = 65536;
byte[] buffer = new byte[buffersize];
using (StreamReader reader = new StreamReader(filename))
{
   int count = 0;
   while (true)
   {
        int count = reader.Read(buffer, 0, buffersize);
        dataStream.Write(buffer, 0, count);
        if (count < buffersize) break;
   }
}

这对我们有用吗?

有更好的解决方案吗?

我们需要注意什么?

不能直接通过 IIS 共享文件。处理程序需要控制谁可以访问,谁不能。

4

1 回答 1

4

你需要使用HttpResponse.TransmitFile方法。这不会在内存中缓冲文件,但您仍然可以获得所需的所有控件。

于 2013-03-12T08:50:37.273 回答