2016-08-01 5 views
0

Ich versuche, eine Datei in eine SharePoint-Dokumentbibliothek mithilfe der C# CSOM-Bibliothek hochzuladen. In der Dokumentbibliothek, in die ich hochlade, sind Einstellungen zur Verwaltung von Informationsrechten erzwungen.Ein Dokument in eine SharePoint-Bibliothek mit IRM hochladen

Wenn ich versuche, eine Datei (entweder ein PDF-Dokument oder ein Word-Dokument - beide ohne jede Art von Schutz angewandt wird) zu laden, erhalte ich folgende Fehlermeldung:

Diese Bibliothek akzeptiert keine Dateien von der angegebene Typ. Sie müssen entweder eine neue, ungeschützte Datei hochladen, die Rechteverwaltung oder Wieder laden ein Dokument, das

Ich hatte den Eindruck, aus dieser Bibliothek heruntergeladen wurde zuvor unterstützt, dass beide Word-Dokumente und PDF-Dokumente durch Rechte unterstützt werden Management? Ich habe versucht, beide Dateien manuell über die SharePoint-Benutzeroberfläche hochzuladen (um ein Problem mit den von mir verwendeten Dateien auszuschließen) und sie werden ohne Probleme in die Dokumentbibliothek aufgenommen.

using (var ctx = GetContext(server)) 
{ 
    Web web = ctx.Web; 
    ctx.Load(web.Lists, lists => lists.Include(list => list.Title, list => list.RootFolder)); 
    ctx.ExecuteQuery(); 

    if (!ListExists(ctx, web, listName)) 
    { 
     throw new InvalidOperationException($"The list '{listName}' does not exist!"); 
    } 

    FileCreationInformation newFile = new FileCreationInformation 
    { 
     ContentStream = fileStream, 
     Url = Path.GetFileName(fileName), 
     Overwrite = true 
    }; 

    List docs = web.Lists.GetByTitle(listName); 
    Microsoft.SharePoint.Client.File uploadFile = docs.RootFolder.Files.Add(newFile); 

    if (fileProperties != null && fileProperties.Any()) 
    { 
     var listItem = uploadFile.ListItemAllFields; 

     foreach (var fileProperty in fileProperties) 
     { 
      listItem[fileProperty.Key] = fileProperty.Value; 
     } 

     listItem.Update(); 
    } 

    ctx.Load(uploadFile); 
    uploadFile.CheckIn("Initial checkin", CheckinType.MajorCheckIn); 
    ctx.ExecuteQuery(); 
} 

Gibt es einen Schritt fehle ich:

Der Code, den ich die Datei zu bin mit ist unten dargestellt (es von der Probe bei https://github.com/OfficeDev/PnP/blob/master/Samples/Core.LargeFileUpload/Core.LargeFileUpload/FileUploadService.cs genommen ziemlich viel ist)?

Antwort

0

Nach einigen weiteren Untersuchungen scheint das Problem durch die Benennung der hochgeladenen Datei verursacht worden zu sein. Der Dateiname, den ich verwendet habe, hatte keine Dateierweiterung, die einen Einfluss darauf haben muss, welchen IRM Protector SharePoint auf die hochgeladene Datei anwendet (was im Nachhinein offensichtlich erscheint!).

Verwandte Themen