2013-04-21 29 views
0

使用SharePoint 2010并注意到一个非常奇怪的行为。 当上传HTML或CSS文件的文档库(由用户和C#代码)时,SharePoint会自动添加这样的代码到文件: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端有没有可能避免这种行为?不希望修改验证库。

在此先感谢。

+0

也许[这个答案](http://sharepoint.stackexchange.com/a/30971)与你的情况有关?虽然没有设计师在你的情况下,也许上传文件也使它成为“Unghosted”。 – 2013-04-22 07:01:47

+0

根据我的经验,这不应该发生在css文件中,但是当您上传带有html或htm扩展名的文件并且没有html标签时,它会在botton中生成此标签。为了克服这个问题,我们在上传文件时使用txt扩展名。 – 2013-04-22 12:28:19

回答

0

好的。这个做完了。 两个变种:

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