SharePoint 2007:如何以编程方式上传二进制文件到文档库
本文关键字:二进制文件 文档 方式 编程 2007 SharePoint | 更新日期: 2023-09-27 18:11:35
我在SharePoint 2007中以编程方式创建一个项目到文档库时遇到问题。
下面是我的代码片段,也许你能指出我的错误:
SPSecurity.RunWithElevatedPrivileges(delegate()
{
using (SPSite site = new SPSite(_url))
{
using (SPWeb web = site.OpenWeb())
{
SPList customList = web.Lists["Test1"];
foreach (SPListItem ltItem in customList.Items)
{
if (ltItem.Attachments != null && ltItem.Attachments.Count > 0)
{
//Get Test1 File Collection
SPFolder folder = web.GetFolder(ltItem.Attachments.UrlPrefix);
SPFileCollection fileColl = folder.Files;
//Get binary data of attachment
SPFile file = ltItem.ParentList.ParentWeb.GetFile(ltItem.Attachments.UrlPrefix + ltItem.Attachments[0]);
byte[] fileData = file.OpenBinary();
//Get Relative URL of attachment destination
string destFile = fileColl.Folder.Url + "/" + file.Name;
web.AllowUnsafeUpdates = true;
//Add attachment into Document Library
SPDocumentLibrary docLib = (SPDocumentLibrary)web.Lists["Test2"];
SPFile file2 = docLib.RootFolder.Files.Add(destFile, fileData, true);
file2.Item.Update();
web.AllowUnsafeUpdates = false;
}
}
}
}
});
我在代码file2.Item.Update();
提前谢谢。
为什么要这样设置destFile ?附件的名称就足够了。
string destFile = file.Name;
只有当您的需求表明您需要文件夹时,才需要附加附件的相对URL,但是在向其中添加文件之前,您将创建文件夹。