输入流到字节数组导致OutOfMemory异常



我无法将InputStream(包含文件内容)写入数据库作为byte数组。

我有以下代码,但是对于大文件,它会抛出OutOfMemoryExceptoin

        var postedFile = HttpContext.Current.Request.Files["file"];
        byte[] fileContent;
        using (MemoryStream ms = new MemoryStream())
        {
            postedFile.InputStream.CopyTo(ms); //error occures here
            fileContent = ms.ToArray();
        }
       // updating entity with new filecontent using INSERT statement

你能建议我如何正确转换InputStream字节数组,所以我可以把它写进数据库?我们需要支持最多100mb的文件(编辑:我已经从200更改为100)。

注:我知道这些文件非常大,但现在这是处理它们的唯一方法。

    public byte[] FileToByteArray(string fileName)
{
    byte[] buff = null;
    FileStream fs = new FileStream(fileName, 
                                   FileMode.Open, 
                                   FileAccess.Read);
    BinaryReader br = new BinaryReader(fs);
    long numBytes = new FileInfo(fileName).Length;
    buff = br.ReadBytes((int) numBytes);
    return buff;
}

试试这个,让我知道它是否适合你......按照我的说法,它应该工作....

相关内容

  • 没有找到相关文章

最新更新