嘿,我已經得到了這個很好的一小段代碼,非常像使用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