使用WebClient读取SharePoint文件
作者:柒月
在某些情境下,我们可能需要外部系统访问SharePoint文档库中的文件。若拥有文件完整Url,我们可以通过WebClient去访问文件。
访问
与SP客户端对象模型一样,若与SharePoint不在同一域下,需要先解决认证问题:
string url="http://spserver/DocLib/Pic1.png"; //DocLib是文档库名;Pic1.png是文件名
WebClient client = new WebClient();
client.Credentials = new NetworkCredential("UserName","Password","Domain"); //AD环境 传递身份信息
//ClientContext context = new ClientContext("http://spserver"); //SharePoint客户端对象模型
//context.Credentials = new NetworkCredential("UserName","Password","Domain");
byte[] data = client.DownloadData(url);//下载文件
输出
若需要将图片输出到页面上,供其他<img/>
引用,则使用如下代码:
Response.ContentType = "image/jpeg";
Response.BinaryWrite(data);
Response.End();
若需要下载,则使用如下代码:
Response.ContentType = "application/octet-stream";
//通知浏览器下载文件而不是打开
Response.AddHeader("Content-Disposition", "attachment; filename="+FileName);
Response.BinaryWrite(data);
Response.Flush();
Response.End();