我需要上传和读取大文件(大小超过500 MB)。我在SQL Server中有一个包含数据类型varbinary(MAX)的列文件来存储。
我想使用C#上传和读取文件。我需要将字节数组传递给SQL Server数据库中的存储文件。但是在上传大文件时初始化字节时出错了。
我可以上传大小为250MB的文件。但我尝试上传文件超过500 MB,它在初始化字节数组时抛出“Out of Memory”异常。
byte[] fileByte = new byte[file.ContentLength]; // "Out of Memory" exception
file.InputStream.Read(fileByte, 0, fileByte.Length);
我也试过
BinaryReader br = new BinaryReader(inputStream);
byte[] fileByte = br.ReadBytes(file.ContentLength); // "Out of Memory" exception
我不想上传和下载文件以保证文件安全。如果有人帮我上传大文件或者修改“内存不足异常”,请告诉我。
感谢。
答案 0 :(得分:0)
SQL Server可以直接从文件系统读取文件。这个批量命令对我们有用:
update someTable
set FileData = (select * from openrowset(bulk ''' + @filepath + ''', single_blob) as blob)
where id = 1;
Share目录需要适当的权限,在所有物理上不在数据库服务器上的情况下,我们都遇到了问题。