如何:将文件从本地文件夹上载到 SharePoint 网站

如何:将文件从本地文件夹上载到 SharePoint 网站,第1张

将HtmlInputFile 控件、文本框和按钮添加到 aspx 页上的表单中: 在aspxcs 代码隐藏文件中,为 SystemIO 和MicrosoftSharePoint 命名空间添加 using 指令,如下所示:VBImports SystemIO Imports MicrosoftSharePoint C#using SystemIO; using MicrosoftSharePoint; 将下面的代码添加到按钮的 Click 事件中:VBIf File1PostedFile IsNothingThenReturnEndIfDim destUrl AsString = TextBox1Text Dim site As SPWeb = New SPSite(destUrl)OpenWeb() Dim fStream As Stream = File1PostedFileInputStream Dim contents(fStreamLength) AsByte fStreamRead(contents, 0, CInt(fStreamLength)) fStreamClose() EnsureParentFolder(site, destUrl) siteFilesAdd(destUrl, contents) C#if (File1PostedFile == null) return; string destUrl = TextBox1Text; SPWeb site = new SPSite(destUrl)OpenWeb(); Stream fStream = File1PostedFileInputStream; byte[] contents = newbyte[fStreamLength]; fStreamRead(contents, 0, (int)fStreamLength); fStreamClose(); EnsureParentFolder(site, destUrl); siteFilesAdd(destUrl, contents); 在文本框中为目标键入的值必须是一个绝对 URL,其中包括分配给 destUrl 参数的文件名。除了实例化父网站的 SPWeb 对象之外,将 SPSite 构造函数和 OpenWeb 方法结合使用将验证 URL,并会在当前 Windows SharePoint Services 部署未使用此 URL 的情况下引发参数异常。SystemWebUIHtmlControlsHtmlInputFile 对象用于将源文件读入字节数组以便与 SPFileCollection 类的Add 方法一起使用。EnsureParentFolder 方法确保目标 URL 中的父文件夹在指定网站中存在,并返回父文件夹的相对于网站的 URL。EnsureParentFolder 方法接受两个参数:一个表示父网站的 SPWeb 对象,一个包含从 UploadFile 方法传递的绝对 URL 的字符串。如果父文件夹不存在,则 EnsureParentFolder 方法将创建它。VBPublicFunction EnsureParentFolder(parentSite As SPWeb, destinUrl AsString) AsString destinUrl = parentSiteGetFile(destinUrl)Url Dim index AsInteger = destinUrlLastIndexOf("/") Dim parentFolderUrl AsString = StringEmpty If index > - 1 Then parentFolderUrl = destinUrlSubstring(0, index) Dim parentFolder As SPFolder = parentSiteGetFolder(parentFolderUrl) IfNot parentFolderExists ThenDim currentFolder As SPFolder = parentSiteRootFolder Dim folder AsStringForEach folder In parentFolderUrlSplit("/"c) currentFolder = currentFolderSubFoldersAdd(folder) Next folder EndIfEndIfReturn parentFolderUrl EndFunction'EnsureParentFolderC#publicstring EnsureParentFolder(SPWeb parentSite, string destinUrl) { destinUrl = parentSiteGetFile(destinUrl)Url; int index = destinUrlLastIndexOf("/"); string parentFolderUrl = stringEmpty; if (index > -1) { parentFolderUrl = destinUrlSubstring(0, index); SPFolder parentFolder = parentSiteGetFolder(parentFolderUrl); if (! parentFolderExists) { SPFolder currentFolder = parentSiteRootFolder; foreach(string folder in parentFolderUrlSplit('/')) { currentFolder = currentFolderSubFoldersAdd(folder); } } } return parentFolderUrl; } 将SPWeb 类的GetFile 方法与 SPFile 类的Url 属性结合使用可将 URL 转换为相对于网站的 URL,如果在网站范围内找不到指定的 URL,则会引发异常。通过使用 StringLastIndexOf 方法计算父文件夹的 URL,以确定目标 URL 中的左斜线 (/) 的最后外观。如果没有斜杠(也就是说,索引等于 -1),则目标为网站的根文件夹且 parentFolderUrl 参数返回空字符串。否则,该示例将使用 SPWeb 类的GetFolder 方法返回目标父文件夹。如果该文件夹不存在,则示例将构造该文件夹。若要上载来自运行 Windows SharePoint Services 的同一服务器上的本地文件夹中的文件,可以改用 SystemIOFileStream 对象。在此情况下,除了为 System 和MicrosoftSharePoint 添加指令之外,还将为 SystemIO 命名空间添加 using 指令。下面的示例使用 Click 事件处理程序来调用 UploadFile 方法,该方法反过来又调用前面描述的 EnsureParentFolder 方法。C#VBpublicvoid UploadFile(string srcUrl, string destUrl) { if (! FileExists(srcUrl)) { thrownew ArgumentException(StringFormat("{0} does not exist", srcUrl), "srcUrl"); } SPWeb site = new SPSite(destUrl)OpenWeb(); FileStream fStream = FileOpenRead(srcUrl); byte[] contents = newbyte[fStreamLength]; fStreamRead(contents, 0, (int)fStreamLength); fStreamClose(); EnsureParentFolder(site, destUrl); siteFilesAdd(destUrl, contents); } UploadFile 方法接受两个参数。srcUrl 参数指定本地计算机的文件系统中的源位置的路径,而 destUrl 参数指定目标的绝对 URL。SystemIOFileStream 对象用于将源文件读入字节数组以便与 SPFileCollection 类的Add 方法一起使用。

服务启比较简单直接管理网站系统设置部单击管理服务器服务找相应服务启需要配置用户配置文件服务应用程序再配置同步服务应用程序具体参考/zh-cn/library/ee721049(v=office14)aspx


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zz/10593652.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-09
下一篇 2023-05-09

发表评论

登录后才能评论

评论列表(0条)

保存