您的位置:首页 > 其它

SharePoint web service 上传文件至文件库

2013-03-21 11:15 281 查看
下面讲解的是利用sharepoint 自带的web service服务将文件上传至sharepoint站点的文件库,本机上可以不安装sharepoint

实现文件上传需要两个服务:

1.实现SharePoint站点上的文件夹的自动创建,需要用到的服务为:Dws

2.实现文件上传的服务为:Copy

实现步骤:

1.引入上面的两个web服务,http://web site/_vti_bin/Copy.asmx 和 http://web site/_vti_bin/dws.asmx

将web site 改為sharePoint 站點網址(下面舉例中的紅色區域)

举例:若是你的SharePoint站点网址为:http://sharePointTest,

则这里需要引入的web 服务为:http://sharePointTest/_vti_bin/Copy.asmxhttp://sharePointTest/_vti_bin/dws.asm

2. 程式代碼

/// <summary>

/// 實現文件上傳到SharePoint站點

/// </summary>

/// <param name="filePath">上傳文件保存到本地的路徑</param>

private static void UploadSharePoint(string fileLoad)

{

string userName = "站點的用戶名";

string password = "站點的密碼";

string domain = "站點的域名";

// 創建Dws 對象

SimSharePointDws.Dws myDws = new SimSharePointDws.Dws();

// 設置權限

myDws.Credentials = new System.Net.NetworkCredential(userName, password, domain);

// 獲取服務的url,需注意的是一直到你的文件庫的上一級

myDws.Url = "http://sharePointTest/DP/Construction/_vti_bin/dws.asmx";

// 創建文件夾 比如你的文件庫為TestLibrary,需要創建的文件夾為20121205,則路徑為:TestLibrary\20121205

var resultCreate = myDws.CreateFolder("路徑");

// 获取文件二进制

byte[] filebyte = StreamFile(fileLoad);

// 上传文件

UploadFile(filebyte, desPath, userName, password, domain);

}

/// <summary>

/// 讀取文件流

/// </summary>

/// <param name="filename">要讀取的文件路徑</param>

/// <returns></returns>

public byte[] StreamFile(string filename)

{

FileStream fs = new FileStream(filename, FileMode.Open, FileAccess.Read);

byte[] ImageData = new byte[fs.Length];

fs.Read(ImageData, 0, System.Convert.ToInt32(fs.Length));

fs.Close();

return ImageData;

}

/// <summary>

/// 實現文件上傳

/// </summary>

/// <param name="fileData">文件二進制</param>

/// <param name="desPath">文件路徑</param>

/// <param name="userName">站點用戶</param>

/// <param name="password">密碼</param>

/// <param name="domain">域</param>

private static void UploadFile(byte[] fileData, string desPath, string userName, string password, string domain)

{

// 實例化Copy對象

var copy = new Web_Reference_Name.Copy

{

Url = "http://sharePointTest/_vti_bin/copy.asmx",

Credentials = new NetworkCredential(userName, password, domain)

};

// 文件存放的路徑

string destinationUrl = desPath;

string[] destinationUrls = { destinationUrl };

var info1 = new Web_Reference_Name.FieldInformation

{

DisplayName = "Title",

InternalName = "Title",

Type = Web_Reference_Name.FieldType.Text,

Value = "New Title"

};

Web_Reference_Name.FieldInformation[] info = { info1 };

var copyResult = new Web_Reference_Name.CopyResult();

Web_Reference_Name.CopyResult[] copyResults = { copyResult };

// 調用自帶的寫入方法

copy.CopyIntoItems(destinationUrl, destinationUrls, info, fileData, out copyResults);

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: