2017-01-17 9 views
1

У меня следующая ситуация:Как добавить файл в MediaItem с помощью SetStream?

  • У меня есть файл на сервере («файл»);
  • У меня есть существующий элемент в медиатеке, к которой этот файл должен быть прикреплен («элемент»).

Я попытался с помощью следующих действий:

var stream = new MemoryStream(file); 
var mediaItem = MediaManager.GetMedia(item); 
var mediaStream = new MediaStream(stream, extension, item); 

mediaItem.SetStream(mediaStream); 

Но последняя операция всегда терпит неудачу бросает исключение, говоря "Cannot access closed stream", даже если поток, как представляется, быть открытым перед запуском последней команды.

Может ли кто-нибудь сказать мне, что я делаю неправильно?

ответ

2

Попробуйте использовать MediaManager.Creator.AttachStreamToMediaItem метод:

FileStream fileStream = new FileStream(fileName, FileMode.Open, FileAccess.Read); 
MediaManager.Creator.AttachStreamToMediaItem(fileStream, "mediaItemPath", fileName, options) 
+0

Это работало. Как вы это узнали? Я пытался сделать именно это - выполнение кода, который запускается всякий раз, когда я прикрепляю файл к MediaItem, но не мог найти иглу в стоге сена. Есть ли какие-либо документы об этом где-нибудь? –

+2

Я узнал, что давным-давно - каждый элемент добавления/изменения элементов мультимедиа доступен через 'MediaManager.Creator'. Это первое, что я всегда смотрю сейчас. –

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

  • Нет связанных вопросов^_^