public XmlRpcStruct newMediaObject(string blogid, string username, string password, XmlRpcStruct rpcstruct)
{
// Check user validation
Authenticate(username, password);
var name = rpcstruct["name"].ToString();
var media = (byte[])rpcstruct["bits"];
var blogName = string.Empty;
var currentBlog = GetContentDatabase().GetItem(blogid);
blogName = currentBlog.Name;
// Get filename
var fileName = Path.GetFileName(name);
var imageName = ItemUtil.ProposeValidItemName(Path.GetFileNameWithoutExtension(fileName));
// Create strem from byte array
var memStream = new MemoryStream(media);
var md = new MediaCreatorOptions();
md.Destination = string.Join("/", new string[]{Constants.Paths.WeBlogMedia, blogName, imageName});
md.Database = GetContentDatabase();
md.AlternateText = imageName;
// Check access rights
CheckUserCreateRights(md.Destination);
// Create mediaitem
var mediaItem = MediaManager.Creator.CreateFromStream(memStream, fileName, md);
// Close stream
memStream.Close();
memStream.Dispose();
// Publish mediaitem to web database
ContentHelper.PublishItemAndRequiredAncestors(mediaItem.ID);
// Get the mediaitem url and return it
var rstruct = new XmlRpcStruct();
var options = new MediaUrlOptions()
{
AbsolutePath = false,
UseItemPath = false
};
rstruct.Add("url", MediaManager.GetMediaUrl(mediaItem, options));
return rstruct;
}