嘿,我已经得到了这个很好的一小段代码,非常像使用WSS WebServices上传这种上传方法的所有其他版本。但是,我有一个主要问题 - 一旦我将文件上载到我的文档列表中,并且更新了列表项目以撰写评论/说明,则文件将停留在那里。我的意思是说,一旦我上传了这个文件,这个方法就不会覆盖这个文件。没有其他人似乎已经发布了这个问题,所以..任何人?使用WebRequest将文件上传到SharePoint WSS 3.0 PUT
我有另一个版本的方法使用一个字节[]而不是一个流..虽然同样的问题。
注意:我已经关闭了图书馆的'需要编辑之前需要检出的文件'选项。没有运气tho ..虽然文档库确实有版本控制,但每个更新都会创建一个主要版本。
private void UploadStream(string fullPath, Stream uploadStream)
{
WebRequest request = WebRequest.Create(fullPath);
request.Credentials = CredentialCache.DefaultCredentials; // User must have 'Contributor' access to the document library
request.Method = "PUT";
request.Headers.Add("Overwrite", "t");
byte[] buffer = new byte[4096];
using (Stream stream = request.GetRequestStream())
{
for (int i = uploadStream.Read(buffer, 0, buffer.Length); i > 0; i = uploadStream.Read(buffer, 0, buffer.Length))
{
stream.Write(buffer, 0, i);
}
}
WebResponse response = request.GetResponse(); // Upload the file
response.Close();
}
原始学分:http://geek.hubkey.com/2007/10/upload-file-to-sharepoint-document.html
编辑 - 重大发现..当我把它从我的NUnit的测试项目,它工作正常。当我从我的WCF应用程序调用它(nUnit以已登录的用户帐户运行,WCF应用程序具有在同一用户下运行的应用程序池 - 我的帐户,同时在SharePoint中具有有效权限)时,它似乎只失败。
坚果。 “现在从哪里开始?!”,我沉迷于自己。
可能会,但不知道要改变什么。我试图关闭此文档库的版本,但没有任何效果。另外,我关闭了更新其他项目字段的第二部分。现在SharePoint中根本没有任何反应。这就像代码从未执行 - 即使我亲眼看到它。 – misteraidan 2009-06-30 07:47:25