【问题标题】:Problem with reading files in FileStream asp.net在 FileStream asp.net 中读取文件的问题
【发布时间】:2022-02-02 22:17:16
【问题描述】:

我的项目中有一个有线问题,我正在尝试通过 ASP.net 流式传输一些 .acc 格式,它在某些文件中工作得非常好(我意识到文件大小小于 1 兆字节它似乎工作很好),但在许多情况下,浏览器播放器会假装加载文件,但事实并非如此。也运行项目没有错误,它对所有文件都一样。 这是我的代码:

int bufferSize = 1000;
byte[] buffer = new byte[bufferSize];
using (var fileStream = new FileStream(filePath, FileMode.Open, FileAccess.Read, FileShare.Read))
{
    int totalSize = (int)fileStream.Length;
    while (totalSize > 0)
    {
        int count = totalSize > bufferSize ? bufferSize : totalSize;
        int sizeOfReadedBuffer = fileStream.Read(buffer, 0, count);
        await outputStream.WriteAsync(buffer, 0, sizeOfReadedBuffer);
        totalSize -= sizeOfReadedBuffer;
    }
}

【问题讨论】:

    标签: c# html asp.net api filestream


    【解决方案1】:

    我怀疑这可能只是时间问题。于是我冒昧地对代码进行了轻微的优化:

    var bufferSize = 4096;
    var buffer = new byte[bufferSize];
    using var fileStream = new FileStream(filePath, FileMode.Open, FileAccess.Read, FileShare.Read);
    var totalSize = fileStream .Length;
    while (totalSize > 0)
    {
        var sizeOfReadBuffer = await fileStream .ReadAsync(buffer.AsMemory());
        await outputStream.WriteAsync(buffer.AsMemory());
        totalSize -= sizeOfReadBuffer;
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-07-02
      • 2018-12-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多