C#实现大文件块到客户端
缓冲区到 / /块读取10K字节:
字节{缓冲区=新的字节{ 10000 };
文件的长度
int的长度;
要读取的字节数:
长datatoread;
确定要下载的文件,包括它的路径。
字符串的文件路径=客户端下载文件的文件名;
文件名。标识
字符串的文件名= system.io.path.getfilename(路径);
尝试
{
文件。打开
istream =新system.io.filestream(文件路径,System.IO.FileMode.Open,
system.io.fileaccess.read,系统IO文件共享读);
要读取的字节数:
datatoread = istream。长度;
response.contenttype =应用/字节流;
response.addheader(内容配置
字节。读取
而(datatoread > 0)
{
客户端连接。验证
如果(响应。isclientconnected)
{
缓冲区中的数据。读取
长度= istream读取(缓冲,0, 10000);
将数据写入当前的输出流。
response.outputstream.write(缓冲区,0,长度);
将数据刷新到html输出。
响应(同花顺);
缓冲区=新字节{ 10000 };
datatoread = datatoread长度;
}
其他的
{
/ /防止无限循环,如果用户断开连接
datatoread = - 1;
}
}
}
catch(异常前)
{
如果有错误,则为。
响应。写(错误:+ ex.message);
}
最后
{
如果(istream!= null)
{
关闭文件。
istream密切();
}
}