2016-08-01 87 views
0

我試圖使用C#CSOM庫將文件上載到SharePoint文檔庫。我正在上傳的文檔庫實施了信息權限管理設置。使用IRM將文檔上傳到SharePoint庫

當我嘗試上傳一個文件(一個PDF文檔或Word文檔 - 既沒有任何類型的保護應用),我收到以下錯誤信息:

這個庫不接受的文件給定的類型。您必須 上傳支持權限管理或 重新上傳先前從該庫

我的印象是,這兩個Word文檔和PDF文檔被給予支持下載的文件一個新的,未受保護的文件管理?我嘗試通過SharePoint UI手動上傳兩個文件(以排除我正在使用的文件存在問題),並將它們添加到文檔庫中而沒有任何問題。

我使用上傳文件的代碼如下所示(這幾乎是從樣品在https://github.com/OfficeDev/PnP/blob/master/Samples/Core.LargeFileUpload/Core.LargeFileUpload/FileUploadService.cs拍攝):

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(); 
} 

是否有步驟我失蹤?

回答

0

經過一番進一步的調查,似乎問題是由於上傳文件的命名造成的。我使用的文件名沒有文件擴展名,它必須與哪個IRM保護器適用於上傳的文件有關(這看起來很明顯,現在事後認識!)。

相關問題