我构建了一个 WSSv3 应用程序,它以小块上传文件;当每个数据块到达时,出于性能原因,我暂时将其保存在 SQL 2005 图像数据类型字段中**。
上传结束时出现问题;我需要通过 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) 的性能下降。