2016-08-01 97 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保护器适用于上传的文件有关(这看起来很明显,现在事后认识!)。

相关问题