【发布时间】:2023-03-10 23:25:01
【问题描述】:
我需要授予用户访问受限文件的权限。正在考虑使用通用网络处理程序进行此操作。
文件可以变得非常大,至少 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 共享文件。处理程序需要控制谁可以访问,谁不能。
【问题讨论】:
-
不要使用 StreamReader。它仅用于文本文件,此处不需要/不需要。
标签: c# asp.net filestream generic-handler