我无法将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;
}
试试这个,让我知道它是否适合你......按照我的说法,它应该工作....