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.asmx和 http://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);
}
实现文件上传需要两个服务:
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.asmx和 http://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);
}
相关文章推荐
- 工具:sharepoint webservice:根据asmx生成disco和wsdl文件
- SharePoint WebService 之更新审批状态
- 使用JQuery调用SharePoint Web Service
- SharePoint WebService——根据群组名称获取成员信息
- Flash + SharePoint WebService播放视频 (一)
- SharePoint Web Service系列:编写自定义SharePoint Web Services之二
- VB.NET客户端调用Axis的Java Web Service实现文件上传
- C# 对sharepoint 列表的一些基本操作,包括添加/删除/查询/上传文件给sharepoint list添加数据
- SharePoint web service 介紹(1)
- SharePoint Web Service系列:编写自定义SharePoint Web Services之一
- 介绍一个测试SharePoint search web service的工具
- .ascx.g.cs文件不能生成 The name ‘InitializeControl’ does not exist in the current context - Visual Web part Sharepoint
- 步步为营 SharePoint 开发学习笔记系列 九、SharePoint web service 开发(上)
- C# 对sharepoint 列表的一些基本操作,包括添加/删除/查询/上传文件给sharepoint list添加数据
- C# 对sharepoint 列表的一些基本操作,包括添加/删除/查询/上传文件给sharepoint list添加数据
- SharePoint Web Service系列:进行列表的增删改
- Sharepoint WebService引用
- 使用SharePoint Web Service(3):删除子站点
- SharePoint Web Service系列:编写自定义SharePoint Web Services之一
- C# 对sharepoint 列表的一些基本操作,包括添加/删除/查询/上传文件给sharepoint list添加数据