代码之家  ›  专栏  ›  技术社区  ›  sleepwalker

Sharepoint将非种子代码添加到上传的文件中

  •  0
  • sleepwalker  · 技术社区  · 12 年前

    玩SharePoint 2010时注意到了一个非常奇怪的行为。 当将html或css文件上传到文档库时(通过用户和C#代码),SharePoint会自动将这些代码添加到文件中:

    <html xmlns:mso="urn:schemas-microsoft-com:office:office" xmlns:msdt="uuid:C2F41010-65B3-11d1-A29F-00AA00C14882"><head>
    <!--[if gte mso 9]><xml>
    <mso:CustomDocumentProperties>
    ******************************
    </mso:CustomDocumentProperties>
    </xml><![endif]-->
    </head>
    

    这确实是不希望的行为,因为上传的文件稍后将被自定义库用于验证目的。

    在SharePoint方面是否有可能避免此类行为?不希望修改验证库。

    提前谢谢。

    1 回复  |  直到 12 年前
        1
  •  0
  •   sleepwalker    12 年前

    好的。完成了。 两种变体:

    1. 如果项目是通过代码添加的-您可以在上传之前将文件格式修改为您的自定义格式(例如prjectNamehtml)。然后在事件接收器(项目添加事件)中-检查这是否是我们的自定义格式-将格式改回html。在这种情况下,所描述的代码将不会添加到文件中。
    2. 这种变体更通用,也适用于通过门户手动上传文件。需要使用事件接收器,在构造函数中,我们应该获取当前的HttpContext并将其保存到变量中。然后在ItemAdding中——如果这是.html文件,我们应该检查一下——通过上下文获取它的内容,并拒绝创建源文件。接收到的内容应该用于通过代码保存文件,并将其处理为第一个变体。