public MediaItem UploadImageFile(string filePath, string newItemPath, string db) { FileStream file = new FileStream(filePath, FileMode.Open); MediaItem mediaItem; using (MemoryStream stream2 = new MemoryStream()) { file.CopyTo(stream2); // Create the options MediaCreatorOptions options = new MediaCreatorOptions { FileBased = false, IncludeExtensionInItemName = false, OverwriteExisting = true, Versioned = false, Destination = newItemPath, Database = Sitecore.Configuration.Factory.GetDatabase(db) }; stream2.Flush(); // upload to sitecore MediaCreator creator = new MediaCreator(); mediaItem = creator.CreateFromStream(stream2, filePath, options); } return(mediaItem); }
private void CreateNewMediaItemWithStreamAndLink(Stream stream, MediaItem currentItem, LinkField relatedField, Media originalMedia) { var mediaCreator = new MediaCreator(); var options = new MediaCreatorOptions { Versioned = false, IncludeExtensionInItemName = false, Database = Factory.GetDatabase(ImageCompressionConstants.GlobalSettings.Database.Master), Destination = $"/sitecore/media library{currentItem.MediaPath}webp" }; using (new SecurityModel.SecurityDisabler()) { var newHiddenMedia = mediaCreator.CreateFromStream(stream, currentItem.Name + ".webp", options); newHiddenMedia.Editing.BeginEdit(); newHiddenMedia.Appearance.Hidden = true; newHiddenMedia.Editing.EndEdit(); currentItem.BeginEdit(); relatedField.Value = string.Empty; //https://sitecore.stackexchange.com/questions/4104/how-to-programatically-update-a-general-link-field-in-a-custom-user-profille new LinkField(originalMedia.MediaData.MediaItem.InnerItem.Fields[ImageCompressionConstants.ImageFields.RELATED_IMAGE_FIELD]) { LinkType = "internal", TargetID = newHiddenMedia.ID }; currentItem.EndEdit(); } }
private static void ProcessMediaUpload(Stream content, Database db, string itemParam, string entryName, bool skipExisting = false) { var mediaItem = (MediaItem)db.GetItem(itemParam) ?? db.GetItem(itemParam.TrimStart('/', '\\')) ?? db.GetItem(ApplicationSettings.MediaLibraryPath + itemParam); if (mediaItem == null) { var filename = itemParam.TrimEnd('/', '\\').Replace('\\', '/'); var dirName = (Path.GetDirectoryName(filename) ?? string.Empty).Replace('\\', '/'); if (!dirName.StartsWith(Constants.MediaLibraryPath)) { dirName = Constants.MediaLibraryPath + (dirName.StartsWith("/") ? dirName : "/" + dirName); } if (!String.IsNullOrEmpty(entryName)) { dirName += "/" + Path.GetDirectoryName(entryName).Replace('\\', '/'); filename = Path.GetFileName(entryName); } var mco = new MediaCreatorOptions { Database = db, Versioned = Settings.Media.UploadAsVersionableByDefault, Destination = $"{dirName}/{Path.GetFileNameWithoutExtension(filename)}", }; var mc = new MediaCreator(); using (var ms = new MemoryStream()) { content.CopyTo(ms); mc.CreateFromStream(ms, Path.GetFileName(filename), mco); } } else { if (skipExisting) { return; } var mediaUri = MediaUri.Parse(mediaItem); var media = MediaManager.GetMedia(mediaUri); using (var ms = new MemoryStream()) { content.CopyTo(ms); using (new EditContext(mediaItem, SecurityCheck.Disable)) { using (var mediaStream = new MediaStream(ms, media.Extension, mediaItem)) { media.SetStream(mediaStream); } } } } }
public MediaItem ImportMedia(MediaItem originalItem) { if (originalItem == null) { return(null); } MediaItem mediaItem; using (MemoryStream stream2 = new MemoryStream()) { var stream = originalItem.GetMediaStream(); if (stream == null) { return(null); } stream.CopyTo(stream2); var invalidChars = new List <string> { "(", ")" }; var newItemPath = originalItem.InnerItem.Paths.FullPath; foreach (var s in invalidChars) { newItemPath = newItemPath.Replace(s, ""); } // Create the options MediaCreatorOptions options = new MediaCreatorOptions(); options.FileBased = false; options.IncludeExtensionInItemName = false; options.OverwriteExisting = true; options.Versioned = false; options.Destination = newItemPath; options.Database = Sitecore.Configuration.Factory.GetDatabase("master"); stream2.Flush(); // upload to sitecore MediaCreator creator = new MediaCreator(); mediaItem = creator.CreateFromStream(stream2, $"{originalItem.Name}.{originalItem.Extension}", options); } return(mediaItem); }
public bool UploadFile(string userName, string password, string filePath, byte[] fileContent, string database, string language) { if (!WebServiceSettings.IsEnabled(WebServiceSettings.ServiceRemoting)) { return(false); } try { if (!Login(userName, password)) { return(false); } PowerShellLog.Info($"File '{filePath}' uploaded through remoting by user: '******'"); var dirName = (Path.GetDirectoryName(filePath) ?? string.Empty).Replace('\\', '/'); if (!dirName.StartsWith(Constants.MediaLibraryPath)) { dirName = Constants.MediaLibraryPath + (dirName.StartsWith("/") ? dirName : "/" + dirName); } var mco = new MediaCreatorOptions { Database = Factory.GetDatabase(database), Language = Language.Parse(language), Versioned = Settings.Media.UploadAsVersionableByDefault, Destination = $"{dirName}/{Path.GetFileNameWithoutExtension(filePath)}" }; var mc = new MediaCreator(); using (var stream = new MemoryStream(fileContent)) { mc.CreateFromStream(stream, Path.GetFileName(filePath), mco); } } catch (Exception ex) { PowerShellLog.Error("Error during uploading file using PowerShell web service", ex); return(false); } return(true); }
/// <summary> /// Private backer used by the other addMedia calls /// </summary> /// <param name="URL">URL path to the image to insert</param> /// <param name="Name">Name to use for the image</param> /// <param name="alt">Alt text to use for the image</param> /// <returns>GUID of the new image</returns> private static Item addMedia(string URL, string Name, string alt = "") { try { using (new SecurityDisabler()) { Sitecore.Resources.Media.MediaCreatorOptions options = new Sitecore.Resources.Media.MediaCreatorOptions(); options.Database = Sitecore.Configuration.Factory.GetDatabase("master"); options.Language = Sitecore.Globalization.Language.Parse(Sitecore.Configuration.Settings.DefaultLanguage); options.Versioned = false; Item mediaFolder = Sitecore.Context.Database.GetItem("{42DFBB81-6182-4EB4-BC28-D6EF535D84F3}"); options.Destination = string.Format("{0}/{1}", mediaFolder.Paths.FullPath, Name); options.FileBased = Sitecore.Configuration.Settings.Media.UploadAsFiles; foreach (Item i in Sitecore.Data.Database.GetDatabase("master").SelectItems("/sitecore/Media Library/Common Sense Media Folder//*[@@templatename='Image'or @@templatename='Jpeg']")) { if (i.Fields["title"].ToString() == Name) { return(i); } } MediaCreator creator = new MediaCreator(); MediaItem image = creator.CreateFromStream(getStream(URL), Name + getExtension(URL), options); image.InnerItem.Editing.BeginEdit(); image.InnerItem["title"] = Name; image.InnerItem["alt"] = !string.IsNullOrEmpty(alt) ? alt : Name; image.InnerItem.Editing.EndEdit(); PublishItem(image, options.Database); PublishItem(image, Sitecore.Configuration.Factory.GetDatabase("web")); return(image.InnerItem); } } catch (Exception e) { return(null); } }
public bool UploadFile(string userName, string password, string filePath, byte[] fileContent, string database, string language) { if (!WebServiceSettings.ServiceEnabledRemoting) { return(false); } try { Login(userName, password); var dirName = (Path.GetDirectoryName(filePath) ?? string.Empty).Replace('\\', '/'); if (!dirName.StartsWith(Constants.MediaLibraryPath)) { dirName = Constants.MediaLibraryPath + (dirName.StartsWith("/") ? dirName : "/" + dirName); } var mco = new MediaCreatorOptions(); mco.Database = Factory.GetDatabase(database); mco.Language = Language.Parse(language); mco.Versioned = Settings.Media.UploadAsVersionableByDefault; mco.Destination = string.Format("{0}/{1}", dirName, Path.GetFileNameWithoutExtension(filePath)); var mc = new MediaCreator(); using (var stream = new MemoryStream(fileContent)) { mc.CreateFromStream(stream, Path.GetFileName(filePath), mco); } } catch (Exception ex) { LogUtils.Error("Error during uploading file using PowerShell web service", ex); return(false); } return(true); }
public bool UploadPhoto(Stream fileStream, string fileName) { try { var path = TranslateHelper.TranslateMessage(DictionaryKeys.PhotoSaveTo.Path) + fileName.Split('.')[0]; using (var memoryStream = new MemoryStream()) { fileStream.CopyTo(memoryStream); var mediaCreator = new MediaCreator(); var options = new MediaCreatorOptions { Versioned = false, IncludeExtensionInItemName = false, Database = Context.Database, Destination = path }; using (new SecurityDisabler()) { var item = mediaCreator.CreateFromStream(memoryStream, fileName, options); var userProfile = Context.User.Profile; if (userProfile != null) { userProfile.Icon = MediaManager.GetMediaUrl(item); Context.User.Profile.Save(); } } } return(true); } catch { return(false); } }
private MediaItem ImportMediaItem(Stream mediaStream, string fileName, string newPath) { MediaItem mediaItem; using (MemoryStream stream2 = new MemoryStream()) { mediaStream.CopyTo(stream2); // Create the options MediaCreatorOptions options = new MediaCreatorOptions(); options.FileBased = false; options.IncludeExtensionInItemName = false; options.OverwriteExisting = true; options.Versioned = false; options.Destination = newPath; options.Database = Sitecore.Configuration.Factory.GetDatabase("master"); stream2.Flush(); // upload to sitecore MediaCreator creator = new MediaCreator(); mediaItem = creator.CreateFromStream(stream2, fileName, options); } return(mediaItem); }
public MediaItem ImportImage(string url, string fileName, string newPath) { HttpWebRequest request = WebRequest.Create(url) as HttpWebRequest; if (request == null) { return(null); } try { // download data HttpWebResponse response = request.GetResponse() as HttpWebResponse; Stream stream1 = response.GetResponseStream(); MemoryStream stream2 = new MemoryStream(); stream1.CopyTo(stream2); // Create the options MediaCreatorOptions options = new MediaCreatorOptions(); options.FileBased = false; options.IncludeExtensionInItemName = false; options.KeepExisting = false; options.Versioned = false; options.Destination = newPath; options.Database = Sitecore.Configuration.Factory.GetDatabase("master"); // upload to sitecore MediaCreator creator = new MediaCreator(); MediaItem mediaItem = creator.CreateFromStream(stream2, fileName, options); response.Close(); return(mediaItem); } catch (WebException ex) { return(null); } }
private static void ProcessMediaUpload(Stream content, Database db, string path, bool skipExisting = false) { var guidPattern = @"(?<id>{[a-z0-9]{8}[-][a-z0-9]{4}[-][a-z0-9]{4}[-][a-z0-9]{4}[-][a-z0-9]{12}})"; path = path.Replace('\\', '/').TrimEnd('/'); path = (path.StartsWith("/") ? path : "/" + path); var originalPath = path; var dotIndex = path.IndexOf(".", StringComparison.OrdinalIgnoreCase); if (dotIndex > -1) { path = path.Substring(0, dotIndex); } if (!path.StartsWith(Constants.MediaLibraryPath)) { path = Constants.MediaLibraryPath + (path.StartsWith("/") ? path : "/" + path); } var mediaItem = (MediaItem)db.GetItem(path); if (mediaItem == null && Regex.IsMatch(originalPath, guidPattern, RegexOptions.Compiled | RegexOptions.IgnoreCase)) { var id = Regex.Match(originalPath, guidPattern, RegexOptions.Compiled | RegexOptions.IgnoreCase).Value; mediaItem = db.GetItem(id); } if (mediaItem == null) { var fileName = Path.GetFileName(originalPath); var itemName = Path.GetFileNameWithoutExtension(path); var dirName = (Path.GetDirectoryName(path) ?? string.Empty).Replace('\\', '/'); if (String.IsNullOrEmpty(fileName)) { PowerShellLog.Warn($"The filename cannot be determined for the entry {fileName}."); return; } var mco = new MediaCreatorOptions { Database = db, Versioned = Settings.Media.UploadAsVersionableByDefault, Destination = $"{dirName}/{itemName}", }; var mc = new MediaCreator(); using (var ms = new MemoryStream()) { content.CopyTo(ms); mc.CreateFromStream(ms, fileName, mco); } } else { if (skipExisting) { return; } var mediaUri = MediaUri.Parse(mediaItem); var media = MediaManager.GetMedia(mediaUri); using (var ms = new MemoryStream()) { content.CopyTo(ms); using (new EditContext(mediaItem, SecurityCheck.Disable)) { using (var mediaStream = new MediaStream(ms, media.Extension, mediaItem)) { media.SetStream(mediaStream); } } } } }
public bool UploadFile(string userName, string password, string filePath, byte[] fileContent, string database, string language) { if (!WebServiceSettings.ServiceEnabledRemoting) { return false; } try { Login(userName, password); var dirName = (Path.GetDirectoryName(filePath) ?? string.Empty).Replace('\\', '/'); if (!dirName.StartsWith(Constants.MediaLibraryPath)) { dirName = Constants.MediaLibraryPath + (dirName.StartsWith("/") ? dirName : "/" + dirName); } var mco = new MediaCreatorOptions(); mco.Database = Factory.GetDatabase(database); mco.Language = Language.Parse(language); mco.Versioned = Settings.Media.UploadAsVersionableByDefault; mco.Destination = string.Format("{0}/{1}", dirName, Path.GetFileNameWithoutExtension(filePath)); var mc = new MediaCreator(); using (var stream = new MemoryStream(fileContent)) { mc.CreateFromStream(stream, Path.GetFileName(filePath), mco); } } catch (Exception ex) { LogUtils.Error("Error during uploading file using PowerShell web service", ex); return false; } return true; }
/// <summary> /// Private backer used by the other addMedia calls /// </summary> /// <param name="URL">URL path to the image to insert</param> /// <param name="Name">Name to use for the image</param> /// <param name="alt">Alt text to use for the image</param> /// <returns>GUID of the new image</returns> private static Item addMedia(string URL, string Name, string alt = "") { try { using (new SecurityDisabler()) { Sitecore.Resources.Media.MediaCreatorOptions options = new Sitecore.Resources.Media.MediaCreatorOptions(); options.Database = Sitecore.Configuration.Factory.GetDatabase("master"); options.Language = Sitecore.Globalization.Language.Parse(Sitecore.Configuration.Settings.DefaultLanguage); options.Versioned = false; Item mediaFolder = Sitecore.Context.Database.GetItem("{42DFBB81-6182-4EB4-BC28-D6EF535D84F3}"); options.Destination = string.Format("{0}/{1}", mediaFolder.Paths.FullPath, Name); options.FileBased = Sitecore.Configuration.Settings.Media.UploadAsFiles; foreach (Item i in Sitecore.Data.Database.GetDatabase("master").SelectItems("/sitecore/Media Library/Common Sense Media Folder//*[@@templatename='Image'or @@templatename='Jpeg']")) { if (i.Fields["title"].ToString() == Name) { return i; } } MediaCreator creator = new MediaCreator(); MediaItem image = creator.CreateFromStream(getStream(URL), Name + getExtension(URL), options); image.InnerItem.Editing.BeginEdit(); image.InnerItem["title"] = Name; image.InnerItem["alt"] = !string.IsNullOrEmpty(alt) ? alt : Name; image.InnerItem.Editing.EndEdit(); PublishItem(image, options.Database); PublishItem(image, Sitecore.Configuration.Factory.GetDatabase("web")); return image.InnerItem; } } catch (Exception e) { return null; } }
protected void FireRowCommand(object sender, GridViewCommandEventArgs e) { string command = e.CommandName; if (command == "FireRowCommand") { string autoId = e.CommandArgument.ToString(); if (FileUploadControl.HasFile) { try { Item mediaItem = Helper.GetDatabase().GetItem(autoId); string fileNameWithExtension = Path.GetFileName(FileUploadControl.FileName); string extention = Path.GetExtension(FileUploadControl.FileName); string filename = fileNameWithExtension.Replace(extention, ""); MemoryStream memStream = new MemoryStream(FileUploadControl.FileBytes); var options = new MediaCreatorOptions(); options.FileBased = false; options.IncludeExtensionInItemName = false; options.KeepExisting = true; options.Versioned = false; options.Destination = mediaItem.Parent.Paths.FullPath + "/" + filename; options.Database = Helper.GetDatabase(); var creator = new MediaCreator(); //Create a new item var newItem = creator.CreateFromStream(memStream, fileNameWithExtension, options); newItem.Editing.BeginEdit(); newItem.Fields["Title"].Value = filename; newItem.Fields["Alt"].Value = mediaItem.Fields["Alt"].Value; newItem.Editing.EndEdit(); Item[] referrers = Helper.GetReferrersAsItems(ref mediaItem); if (referrers != null) { Sitecore.Data.Items.MediaItem newMediaItem = new Sitecore.Data.Items.MediaItem(newItem); foreach (Item referr in referrers) { var Fields = referr.Fields.Where(x => x.Value.Contains(mediaItem.ID.ToString())); if (Fields != null && Fields.Count() > 0) { referr.Editing.BeginEdit(); foreach (var field in Fields) { if (field.Type == "Image") { Sitecore.Data.Fields.ImageField imageField = referr.Fields[field.Name]; var alt = imageField.Alt; var sclass = imageField.Class; imageField.Clear(); imageField.MediaID = newMediaItem.ID; imageField.Alt = alt; imageField.Class = sclass; } else { referr.Fields[field.Name].Value = referr.Fields[field.Name].Value.Replace(mediaItem.ID.ToString(), newItem.ID.ToString()); } } referr.Editing.EndEdit(); } } } pnSuccessUpdate.Visible = true; } catch (Exception ex) { pnFailureUpdate.Visible = true; } } else { pnFailureUpdate.Visible = true; } } }
/// <inheritdoc /> public MediaItem UploadToMediaLibrary(SelectedImageModel selectedImage, string itemName, Language language) { var targetSitecorePath = Settings.GetSetting("Foundation.FotoWareExtensions.TargetPath", "/sitecore/media library/FotoWare"); var tenantUrl = Settings.GetSetting("Foundation.FotoWareExtensions.FotoWare.TenantUrl", string.Empty); if (!string.IsNullOrEmpty(tenantUrl)) { if (!string.IsNullOrEmpty(targetSitecorePath)) { try { var webRequest = WebRequest.Create(selectedImage.ImageUrl); using (var webResponse = webRequest.GetResponse()) { using (var stream = webResponse.GetResponseStream()) { using (var memoryStream = new MemoryStream()) { if (stream != null) { stream.CopyTo(memoryStream); } else { return(null); } var mediaCreator = new MediaCreator(); var options = new MediaCreatorOptions { Versioned = false, IncludeExtensionInItemName = false, Database = _database, Destination = string.Format("{0}/{1}", targetSitecorePath, itemName), AlternateText = selectedImage.Alt }; using (new SecurityDisabler()) { Item item = null; using (new EventDisabler()) { item = mediaCreator.CreateFromStream(memoryStream, Path.GetFileName(selectedImage.ImageUrl.LocalPath), options); } if (item != null) { return(UpdateMetaData(item.ID, selectedImage, tenantUrl, language)); } return(null); } } } } } catch (Exception e) { FotoWareFieldsLog.WriteToLog( "--- Media Repository: FotoWare-Image could not be uploaded to sitecore media-library: ---", e); return(null); } } else { FotoWareFieldsLog.WriteToLog("--- Media Repository: target-path-setting is not set in config-file. : ---"); return(null); } } else { FotoWareFieldsLog.WriteToLog("--- Media Repository: tenant-url-setting is not set in config-file. : ---"); return(null); } }
private static void ProcessMediaUpload(Stream content, Database db, string itemParam, string entryName, bool skipExisting = false) { var mediaItem = (MediaItem)db.GetItem(itemParam) ?? db.GetItem(itemParam.TrimStart('/', '\\')) ?? db.GetItem(ApplicationSettings.MediaLibraryPath + itemParam); if (mediaItem == null) { var filename = itemParam.TrimEnd('/', '\\').Replace('\\', '/'); var dirName = (Path.GetDirectoryName(filename) ?? string.Empty).Replace('\\', '/'); if (!dirName.StartsWith(Constants.MediaLibraryPath)) { dirName = Constants.MediaLibraryPath + (dirName.StartsWith("/") ? dirName : "/" + dirName); } if (!String.IsNullOrEmpty(entryName)) { dirName += "/" + Path.GetDirectoryName(entryName).Replace('\\', '/'); filename = Path.GetFileName(entryName); } var mco = new MediaCreatorOptions { Database = db, Versioned = Settings.Media.UploadAsVersionableByDefault, Destination = $"{dirName}/{Path.GetFileNameWithoutExtension(filename)}", }; var mc = new MediaCreator(); using (var ms = new MemoryStream()) { content.CopyTo(ms); mc.CreateFromStream(ms, Path.GetFileName(filename), mco); } } else { if (skipExisting) return; var mediaUri = MediaUri.Parse(mediaItem); var media = MediaManager.GetMedia(mediaUri); using (var ms = new MemoryStream()) { content.CopyTo(ms); using (new EditContext(mediaItem, SecurityCheck.Disable)) { using (var mediaStream = new MediaStream(ms, media.Extension, mediaItem)) { media.SetStream(mediaStream); } } } } }