Thursday, December 15, 2011

Set/Update Content Type of new upload file in document library

using (SPSite site = new SPSite(SiteSubSite))
{
using (SPWeb web = site.OpenWeb())
{
web.AllowUnsafeUpdates = true;
//Create file Stream object using save local file
FileStream fstream = File.OpenRead(sourceFilePath);
byte[] content = new byte[fstream.Length];
fstream.Read(content, 0, (int)fstream.Length);
fstream.Close();

SPFile file = web.Files.Add(targetDocumentLibraryPath, content, true);

SPContentType spPdf = file.Item.ParentList.ContentTypes[ContentType.Name.ToString()];

file.Item["ContentTypeId"] = spPdf.Id;
file.Item["Content Type"] = spPdf.Name;
file.Item.SystemUpdate();
file.Update();

}
}