【问题标题】:Upload MS Word document to Sharepoint without metadata在没有元数据的情况下将 MS Word 文档上传到 Sharepoint
【发布时间】:2014-04-16 09:48:43
【问题描述】:

您能否告诉我处理上传到已包含 SharePoint 添加的元数据的 SharePoint (2010) MS Word 文档的最佳方法是什么?当用户从 SharePoint 库中获取一些文档、对其进行修改并将它们作为新文件上传到同一个库时,我遇到了一个问题。我有一个表单,它在文档上传时打开以填充一些元数据,表单上的这些字段预先填充了 SharePoint 先前在文档上设置的值。最大的问题是,即使用户更改了这些值,文件仍会与旧值一起保存,并且还会使用不正确的(旧)值创建一个新的列表项,这当然会导致冲突和错误。

我正在考虑使用 ItemAdding 方法中的 eventreceiver 手动清除值,方法是:

    public override void ItemAdding(SPItemEventProperties properties)
    {
        properties.AfterProperties["Title"] = String.Empty;
        properties.AfterProperties["Adresat"] = "";
        properties.AfterProperties["Nr_x0020_dziennika"] = "";
        properties.AfterProperties["Budowa"] = "";
        properties.AfterProperties["Osoba_x0020_odpowiedzialna"] = "";
        properties.AfterProperties["Osoba_x0020_do_x0020_wiad"] = "";
        properties.AfterProperties["Komentarz"] = "";
    }

但它看起来像一个令人讨厌的解决方法,并且在工作流中上传文档时还会删除更高版本的文档。

【问题讨论】:

    标签: sharepoint file-upload sharepoint-2010 metadata


    【解决方案1】:

    如果它仅适用于新文档,那么这对您的问题来说并不是一个糟糕的解决方案。

    您还可以通过查看 properties.ListItemVersion 让您的事件接收器检查是否有以前的版本

    由于 Office 文档的元数据实际上存储在文档中,您可能需要对此解决方案进行一些修改,将其实际从文档中删除:http://sadomovalex.blogspot.com/2012/12/remove-sharepoint-metadata-from-ms.html

    【讨论】:

    • 感谢您的意见。在 ItemAdding 中,上传文件的第一个版本时没有可用的 ListItem,但我检查 listitem 是否为空就足够了。但是我遇到了另一个问题,在清除 AfterProperties 之后,我的某些列即使在上传过程中填写在表单上,​​也始终为空。你知道这可能是什么原因吗?
    • 这可能与删除元数据的方式有关。您可以尝试在文档中设置它,而不是删除它。
    • 诚然,我不确定为什么没有更新元数据。另一个测试是尝试使用 ItemAdded 而不是 ItemAdding,看看这是否会影响元数据。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-04
    相关资源
    最近更新 更多