public MediaItem AddFile(string fileName, string mediaItemName)
        {
            string sitecorePath = "/sitecore/media library/Images/Poses/wordpress";

            // Create the options
            Sitecore.Resources.Media.MediaCreatorOptions options = new Sitecore.Resources.Media.MediaCreatorOptions();
            // Store the file in the database, not as a file
            options.FileBased = false;
            // Remove file extension from item name
            options.IncludeExtensionInItemName = false;
            // Overwrite any existing file with the same name
            options.KeepExisting = false;
            // Do not make a versioned template
            options.Versioned = false;
            // set the path
            options.Destination = sitecorePath + "/" + mediaItemName;
            // Set the database
            options.Database = Sitecore.Configuration.Factory.GetDatabase("master");

            // Now create the file
            Sitecore.Resources.Media.MediaCreator creator = new Sitecore.Resources.Media.MediaCreator();
            string    mediaitempath  = sitecorePath + "/" + fileName;
            Item      posesMediaItem = Sitecore.Context.Database.GetItem(mediaitempath);
            MediaItem mediaItem      = null;

            if (posesMediaItem == null)
            {
                mediaItem = creator.CreateFromFile(fileName, options);
            }
            return(mediaItem);
        }
Пример #2
0
 public Item CreateorUpdateMedia(string sitecorePath, string sourcePath, string mediaItemName)
 {
     try
     {
         Database masterDb = Sitecore.Configuration.Factory.GetDatabase("master");
         // ItemUri itemUri = ItemUri.Parse(sitecorePath + "/" + mediaItemName);
         // Item myItem = Database.GetItem(itemUri);
         // Create the options
         Sitecore.Resources.Media.MediaCreatorOptions options = new Sitecore.Resources.Media.MediaCreatorOptions();
         // Store the file in the database, not as a file
         options.FileBased = false;
         // Remove file extension from item name
         options.IncludeExtensionInItemName = false;
         // Overwrite any existing file with the same name
         options.OverwriteExisting = true;
         // Do not make a versioned template
         options.Versioned = false;
         // set the path
         options.Destination = sitecorePath;
         options.Destination = options.Destination + "/" + mediaItemName;
         options.Database    = masterDb;
         // Now create the file
         Sitecore.Resources.Media.MediaCreator creator = new Sitecore.Resources.Media.MediaCreator();
         var mediaItem = masterDb.GetItem(sourcePath);
         if (mediaItem != null)
         {
             FileInfo     fi = new System.IO.FileInfo(sourcePath);
             FileStream   fs = fi.OpenRead();
             MemoryStream ms = new MemoryStream();
             ms.SetLength(fs.Length);
             fs.Read(ms.GetBuffer(), 0, (int)fs.Length);
             ms.Flush();
             fs.Close();
             MediaItem updatedItem = creator.AttachStreamToMediaItem(ms, sitecorePath, mediaItemName, options);
             if (updatedItem != null)
             {
                 ms.Dispose();
                 return(updatedItem);
             }
         }
         else
         {
             MediaItem newItem = creator.CreateFromFile(sourcePath, options);
             if (newItem != null)
             {
                 return(newItem);
             }
         }
     }
     catch (Exception ex)
     {
     }
     return(null);
 }
        /// <summary>
        /// Save image in the Media library
        /// </summary>
        /// <param name="stream"></param>
        /// <param name="fileName"></param>
        /// <param name="path"></param>
        /// <param name="mediaItemName"></param>
        /// <returns></returns>
        private bool UploadMediaItem(Stream stream, string fileName, string path, string mediaItemName)
        {
            if (string.IsNullOrWhiteSpace(fileName) || string.IsNullOrWhiteSpace(path) || string.IsNullOrWhiteSpace(mediaItemName))
            {
                Sitecore.Diagnostics.Log.Error($"Could not upload media item either filename, path or mediaitemname is null.", this);
                return(false);
            }

            if (stream == Stream.Null)
            {
                Sitecore.Diagnostics.Log.Error($"Could not upload stream is null for media item {mediaItemName}.", this);
                return(false);
            }

            string destination = $"{path}/{mediaItemName}";

            try
            {
                Sitecore.Resources.Media.MediaCreatorOptions options =
                    new Sitecore.Resources.Media.MediaCreatorOptions()
                {
                    FileBased = false,
                    IncludeExtensionInItemName = false,
                    OverwriteExisting          = true,
                    Versioned     = false,
                    Destination   = destination,
                    Database      = Sitecore.Configuration.Factory.GetDatabase(masterDb),
                    AlternateText = mediaItemName
                };

                using (new SecurityDisabler())
                {
                    Sitecore.Resources.Media.MediaCreator creator = new Sitecore.Resources.Media.MediaCreator();
                    MediaItem mediaItem = creator.CreateFromStream(stream, fileName, options);
                    if (mediaItem != null)
                    {
                        Log.Info($"Media Item {destination} uploaded successfully.", this);
                        return(true);
                    }
                }
            }
            catch (Exception ex)
            {
                Log.Error($"Error uploading Media Item {destination}", ex, this);
            }
            finally
            {
                stream.Dispose();
            }

            return(false);
        }
Пример #4
0
        public MediaItem CreateMedaiItem(Stream stream, string fileName, string sitecorePath)
        {
            Sitecore.Resources.Media.MediaCreatorOptions options = new Sitecore.Resources.Media.MediaCreatorOptions()
            {
                FileBased = false,
                IncludeExtensionInItemName = false,
                OverwriteExisting          = false,
                Versioned   = false,
                Destination = sitecorePath + "/" + Path.GetFileNameWithoutExtension(fileName),
                Database    = Sitecore.Configuration.Factory.GetDatabase("master")
            };

            Sitecore.Resources.Media.MediaCreator creator = new Sitecore.Resources.Media.MediaCreator();
            MediaItem mediaItem = creator.CreateFromStream(stream, fileName, options);

            return(mediaItem);
        }
Пример #5
0
        public MediaItem AddFile(string fileName, string sitecorePath, string mediaItemName)
        {
            // Create the options
            Sitecore.Resources.Media.MediaCreatorOptions options = new Sitecore.Resources.Media.MediaCreatorOptions();
            // Store the file in the database, not as a file
            options.FileBased = false;
            // Remove file extension from item name
            options.IncludeExtensionInItemName = false;
            // Overwrite any existing file with the same name
//            options.KeepExisting = false;
            // Do not make a versioned template
            options.Versioned = false;
            // set the path
            options.Destination = sitecorePath + "/" + mediaItemName;
            // Set the database
            options.Database = Sitecore.Configuration.Factory.GetDatabase("master");

            // Now create the file
            Sitecore.Resources.Media.MediaCreator creator = new Sitecore.Resources.Media.MediaCreator();
            MediaItem mediaItem = creator.CreateFromFile(fileName, options);

            return(mediaItem);
        }
Пример #6
0
        /// <summary>
        /// save image inside media gallery
        /// </summary>
        /// <param name="image">Image</param>
        /// <param name="fileName">File name</param>
        /// <param name="alternateText">Alternate text image</param>
        public static void SaveImage(Bitmap image, string fileName, string alternateText)
        {
            // Create memory stream object
            var memoryStream = new MemoryStream();

            image.Save(memoryStream, System.Drawing.Imaging.ImageFormat.Jpeg);
            // save image in Media galley
            var options = new Sitecore.Resources.Media.MediaCreatorOptions
            {
                FileBased                  = false,
                OverwriteExisting          = true,
                Versioned                  = true,
                IncludeExtensionInItemName = true,
                Destination                = fileName,
                Database      = Factory.GetDatabase("master"),
                AlternateText = alternateText
            };

            using (new SecurityDisabler())
            {
                var creator = new Sitecore.Resources.Media.MediaCreator();
                creator.CreateFromStream(memoryStream, fileName, options);
            }
        }
Пример #7
0
        /// <summary>
        ///
        /// </summary>
        /// <param name="db"></param>
        /// <param name="importPath"></param>
        /// <param name="contentPath"></param>
        /// <returns></returns>
        public static MediaItem UploadContent(Database db, string importPath, string contentPath)
        {
            MediaItem mediaItem = null;

            Sitecore.Resources.Media.MediaCreatorOptions options = new Sitecore.Resources.Media.MediaCreatorOptions();
            options.Database     = db;
            options.Language     = Sitecore.Globalization.Language.Parse(Sitecore.Configuration.Settings.DefaultLanguage);
            options.Versioned    = Sitecore.Configuration.Settings.Media.UploadAsVersionableByDefault;
            options.Destination  = contentPath;
            options.KeepExisting = false; // force replacement

            try
            {
                Sitecore.Resources.Media.MediaCreator creator = new Sitecore.Resources.Media.MediaCreator();
                mediaItem = creator.CreateFromFile(importPath, options);
            }
            catch (Exception ex)
            {
                Log.Error(String.Format("Genworth.SitecoreExt.Utilities.ContentEditorHelper:UploadContent, exception creating media item {0}, skipping file. Exception: {1}", importPath.Substring(importPath.LastIndexOf("/")), ex.ToString()), typeof(ContentEditorHelper));
                SitecoreExt.Utilities.ContentEditorHelper.MoveFile(importPath, Path.Combine(importPath + ".failed"));
            }

            return(mediaItem);
        }
        public MediaItem AddFile(string fileName, string mediaItemName) {
            string sitecorePath = "/sitecore/media library/Images/Poses/wordpress";
            // Create the options
            Sitecore.Resources.Media.MediaCreatorOptions options = new Sitecore.Resources.Media.MediaCreatorOptions();
            // Store the file in the database, not as a file
            options.FileBased = false;
            // Remove file extension from item name
            options.IncludeExtensionInItemName = false;
            // Overwrite any existing file with the same name
            options.KeepExisting = false;
            // Do not make a versioned template
            options.Versioned = false;
            // set the path
            options.Destination = sitecorePath + "/" + mediaItemName;
            // Set the database
            options.Database = master;

            // Now create the file
            Sitecore.Resources.Media.MediaCreator creator = new Sitecore.Resources.Media.MediaCreator();
            string mediaitempath = sitecorePath + "/" + fileName;
            Item posesMediaItem = Sitecore.Context.Database.GetItem(mediaitempath);
            MediaItem mediaItem = null;
            if (posesMediaItem == null) {
                mediaItem = creator.CreateFromFile(fileName, options);
            }
            return mediaItem;
        }
        /// <summary>
        /// Add the image to Sitecore
        /// </summary>
        /// <param name="percolatePost"></param>
        /// <returns></returns>
        public MediaItem CreateMedia(PercolatePost percolatePost)
        {
            //Create the options
            Sitecore.Resources.Media.MediaCreatorOptions options = new Sitecore.Resources.Media.MediaCreatorOptions();
            options.FileBased = false;
            options.IncludeExtensionInItemName = false;
            options.KeepExisting = false;
            options.Versioned = false;
            options.Destination = PercolateConstants.Paths.MediaPath + percolatePost.Media.Id;
            options.Database = Sitecore.Configuration.Factory.GetDatabase(Settings.PercolateSettings.MasterDBName);

            //read the image from percolate
            var webClient = new WebClient();
            byte[] imageBytes = webClient.DownloadData(percolatePost.Media.Src);
            MemoryStream stream = new MemoryStream();
            stream.Write(imageBytes, 0, imageBytes.Length);

            //create the image
            Sitecore.Resources.Media.MediaCreator creator = new Sitecore.Resources.Media.MediaCreator();
            MediaItem mediaItem = creator.CreateFromStream(stream, string.Format("{0}.{1}", percolatePost.Media.Id, percolatePost.Media.Format), options);
            
            return mediaItem;
        }
Пример #10
0
        public ActionResult UploadImage()
        {
            bool   isSavedSuccessfully = true;
            string fName = "";

            try
            {
                using (new SecurityDisabler())
                {
                    foreach (string fileName in Request.Files)
                    {
                        HttpPostedFileBase file = Request.Files[fileName];
                        //Save file content goes here
                        if (file != null && file.ContentLength > 0)
                        {
                            var tempStream = new MemoryStream();

                            file.InputStream.CopyTo(tempStream);

                            tempStream.Seek(0, SeekOrigin.Begin);

                            fName = file.FileName;

                            var newFileName =
                                Guid.NewGuid()
                                .ToString()
                                .Replace("-", string.Empty)
                                .Replace("{", string.Empty)
                                .Replace("}", string.Empty);

                            var imagesRootId = ID.Parse(Settings.GetSetting("ImagesRoot"));
                            var imagesRoot   = Sitecore.Context.Database.GetItem(imagesRootId);

                            // Create the options
                            Sitecore.Resources.Media.MediaCreatorOptions options =
                                new Sitecore.Resources.Media.MediaCreatorOptions();
                            // Store the file in the database, not as a file
                            options.FileBased = false;
                            // Remove file extension from item name
                            options.IncludeExtensionInItemName = false;
                            // Overwrite any existing file with the same name
                            options.KeepExisting = false;
                            // Do not make a versioned template
                            options.Versioned = false;
                            options.IncludeExtensionInItemName = false;
                            // set the path
                            options.Destination = imagesRoot.Paths.FullPath + "/" + newFileName;
                            // Set the database
                            options.Database = Sitecore.Configuration.Factory.GetDatabase("master");

                            // Now create the file
                            Sitecore.Resources.Media.MediaCreator creator =
                                new Sitecore.Resources.Media.MediaCreator();

                            MediaItem mediaItem = creator.CreateFromStream(tempStream,
                                                                           newFileName + Path.GetExtension(file.FileName), options);

                            PublishManager.PublishItem(mediaItem, new[] { Database.GetDatabase("web"), },
                                                       new[] { Language.Current }, false, false);


                            CorePipeline.Run("detectFaces", new DetectFacesArgs(mediaItem.InnerItem));
                        }
                    }
                }
            }
            catch (Exception ex)
            {
                isSavedSuccessfully = false;
            }

            if (isSavedSuccessfully)
            {
                return(Json(new { Message = fName }));
            }

            return(Json(new { Message = "Error in saving file" }));
        }