我构建了一个WSSv3应用程序,它以小块方式上传文件;当每个数据块到达时,出于性能原因,我暂时将其保存到SQL 2005图像数据类型字段中。将大文件上载到WSS v3中
上传结束时出现问题;我需要通过WSSv3对象模型将数据从我的SQL Server移动到Sharepoint文档库。
现在,我能想到的两种方法:
SPFileCollection.Add(string, (byte[])reader[0]); // OutOfMemoryException
和
SPFile file = folder.Files.Add("filename", new byte[]{ });
using(Stream stream = file.OpenBinaryStream())
{
// ... init vars and stuff ...
while ((bytes = reader.GetBytes(0, offset, buffer, 0, BUFFER_SIZE)) > 0)
{
stream.Write(buffer, 0, (int)bytes); // Timeout issues
}
file.SaveBinary(stream);
}
是否有任何其他方式成功地完成这个任务?
**性能原因:如果您试图直接在Sharepoint上编写每个块,随着文件增长(> 100Mb),您会注意到性能下降。
文件的平均大小和最大大小是多少? – 2009-09-28 19:58:03
大多数文件小于5MB;大文件(〜500MB)只是一个小集合 – 2009-09-28 20:54:15