2013-04-21 41 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文件 - 通過上下文獲取它的內容並拒絕創建源文件。接收到的內容應該用於通過代碼保存文件,並將其作爲第一個變體進行處理。
相關問題