string strMPageURL ="http://abcd.com/sites/forum/_catalogs/masterpage/MyCustomMasterPage.master";
SPFolder mPageFolder = spWeb.Folders["_catalogs"].SubFolders["masterpage"];
using (WebClient oWebClient = new WebClient())
{
SPFileCollection mPageFileCollection = mPageFolder.Files;
SPFile mPageFile = mPageFileCollection.Add(
"MyCustomMasterPage.master",
oWebClient.OpenRead(strMPageURL)
);
}
На самом деле он ведет себя так, как будто вы загружаете мастер-страницу в папку _catalogs / masterpage, но разница в том, что она пришла из Интернета, а не с локального компьютера.
Если вы планируете загружать мастер-страницу так же, как ведет себя из коробки при загрузке файлов с локального компьютера, вы можете сделать это.
string strMPageLocation =@"C://MyCustomMasterPage.master";
SPFolder mPageFolder = spWeb.Folders["_catalogs"].SubFolders["masterpage"];
using (FileStream mPageStream = new FileStream(strMPageLocation,FileMode.Open))
{
SPFileCollection mPageFileCollection = mPageFolder.Files;
SPFile mPageFile = mPageFileCollection.Add(
"MyCustomMasterPage.master",
mPageStream
);
}