2015-04-14 3 views
2

Я хочу переименовать или хочу присвоить имя загруженному элементу мультимедиа, но он всегда загружается как неназванное имя элемента (медиа). Следующий мой код.Переименование файла медиатекста Sitecore с помощью C#

public static void UploadImage(int customerID,FileUpload fup) 
    { 
     using (new SecurityDisabler()) 
     { 
      var options = new Sitecore.Resources.Media.MediaCreatorOptions 
      { 
       AlternateText =customerID.ToString(), 
       FileBased = false, 
       IncludeExtensionInItemName = false, 
       KeepExisting = false, 
       Versioned = false, 
       Destination = "/sitecore/media library/temp", 
       Database = Sitecore.Configuration.Factory.GetDatabase("master") 
      }; 

      var filepath = HttpContext.Current.Server.MapPath(fup.FileName); 
      var creator = new MediaCreator(); 
      var mediaItem = creator.CreateFromStream(fup.PostedFile.InputStream, filepath, options); 
      MediaItem myFile = mediaItem; 

      myFile.Name = customerID.ToString(); // unable to give becasue it read only 

     } 
    } 

ответ

3

Попытки вызвать .InnerItem.Editing.BeginEdit() до переименования и .InnerItem.Editing.EndEdit() после переименования:

myFile.InnerItem.Editing.BeginEdit(); 
myFile.InnerItem.Name = customerID.ToString(); 
myFile.InnerItem.Editing.EndEdit(); 

Для получения более подробной информации смотрите главу 3.1.5 How to Place an Item in Editing Mode здесь http://sdn.sitecore.net/upload/sitecore6/content_api_cookbook-a4.pdf

+0

У меня есть tried.it дает ошибку компиляции. потому что он показывает только чтение. –

+0

См. Отредактированный ответ. Может быть, '.InnerItem' будет работать для вас. –

Смежные вопросы