SharePoint 2007: Come caricare file binario di programmazione in raccolta documenti?
-
26-10-2019 - |
Domanda
ho incontrato un problema a livello di codice creare un elemento in libreria di documenti in SharePoint 2007.
Di seguito è riportato il mio frammento di codice, forse si potrebbe in grado di segnalare qual è il mio errore:
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;
}
}
}
}
});
mi ha colpito "riferimento oggetto non impostato su un'istanza di un oggetto" a questo link del codice file2.Item.Update ();
Grazie in anticipo.
Soluzione
Perché si imposta la destfile in quel modo? Il nome dell'allegato è abbastanza ..
string destFile = file.Name;
E 'solo necessario aggiungere il relativo URL del attachement se i requisiti dicono che avete bisogno di cartelle, ma poi devi creare le cartelle prima di aggiungere un file ad esso.
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow