SharePoint 2007: Comment télécharger un fichier binaire en programmation bibliothèque de documents?
-
26-10-2019 - |
Question
Je rencontre un problème pour créer un programme élément dans la bibliothèque de documents dans SharePoint 2007.
Voici mon fragment de code, peut-être vous pourriez en mesure de signaler ce qui est mon erreur:
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;
}
}
}
}
});
je frappe « référence d'objet non définie à une instance d'un objet » à ce lien code file2.Item.Update ();
Je vous remercie à l'avance.
La solution
Pourquoi est-ce que vous définissez le destfile comme ça? Le nom de la pièce jointe est assez ..
string destFile = file.Name;
Il est seulement nécessaire d'ajouter l'URL relative du Attachement si vos besoins disent que vous avez besoin des dossiers, mais vous souhaitez créer les dossiers avant d'ajouter un fichier à lui.
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow