SharePoint 2007: Как программно загружать двоичный файл в библиотеку документов?
-
26-10-2019 - |
Вопрос
Я сталкиваюсь с проблемой для программного создания элемента в библиотеку документов в 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 -адрес прикрепления, только если ваши требования говорят, что вам нужны папки, но затем вы создадите папки перед добавлением в него файл.
Не связан с StackOverflow