簡體   English   中英

如何將文檔上載到sharepoint 2007 C#

[英]how to upload documents to sharepoint 2007 C#

我無權訪問Sharepoint服務器,僅像網頁上的標准用戶一樣。 我可以在那里手動上傳文件。 我試圖通過C#解決它,並從net的示例中完成了所有代碼。 我們的Sharepoint是2007。我的代碼運行沒有任何錯誤。 我把控制文本放在那里,看它是否繼續。 一切運行正常,但在Sharepoint頁面上沒有任何反應,沒有文檔上傳。 我不知道為什么它什么都不做:)

 using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.IO;
using System.Net;



namespace Sharepoint
{
    class Program
 {
        public static void CopyStream(Stream read, Stream write)
        {



            int len; byte[] temp = new byte[1024];

            while ((len = read.Read(temp, 0, temp.Length)) > 0)
            {
                write.Write(temp, 0, len);
             ///   Console.WriteLine("test");
            }



        }



        static void Main(string[] args)
        {




            Uri destUri = new Uri("http://gaja/mBreSKCZ/mreports/sales/reportysales/Test_new.txt");
            using (FileStream inStream = File.OpenRead(@"C:\Users\TK20382\Test_new.txt"))
            {
                WebRequest req = WebRequest.Create(destUri);
                req.Method = "PUT";
                req.Credentials = CredentialCache.DefaultCredentials; // assuming windows Auth
                Console.WriteLine("test");
                Console.ReadKey();
                using (Stream outStream = req.GetRequestStream())
                {
                    CopyStream(inStream, outStream);
                }

            }



        }


    }
}

您缺少基本上調用PUT請求的HttpWebRequest.GetResponse方法 此外,如果目標是.NET Framework> = 2.0版本,則可以省略CopyStream方法,並且該行:

CopyStream(inStream, outStream);

替換為:

inStream.CopyTo(outStream);

修改版

public static string UploadFile(string targetUrl,ICredentials credentials, string sourcePath)
{
        var request = WebRequest.Create(targetUrl);
        request.Method = "PUT";
        request.Credentials = credentials;
        using (var fileStream = File.OpenRead(sourcePath))
        using (var requestStream = request.GetRequestStream())
        {
            fileStream.CopyTo(requestStream);
        }
        using (var response = request.GetResponse())
        using (var reader = new StreamReader(response.GetResponseStream()))
        {
            return reader.ReadToEnd();
        }
}

用法

UploadFile("https://contoso.intranet.com/documents/guide.docx", CredentialCache.DefaultCredentials, @"D:\guide.docx");

另外,也可以使用WebClient.UploadFile方法 ,如下所示:

public static void UploadFile(string targeUrl, ICredentials credentials, string fileName)
{
    using (var client = new WebClient())
    {
        client.Credentials = credentials;
        client.UploadFile(targeUrl, "PUT", fileName);
    }
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM