У меня есть следующий код. Я проверил, что GetMediaItemByID возвращает ожидаемый элемент мультимедиа, а тип mime — «application/pdf». Однако, когда я нажимаю контроллер, который вызывает этот код, Acrobat жалуется, что полученный файл PDF недействителен. Я просмотрел полученный файл PDF в текстовом редакторе, и это двоичные данные. Есть идеи, где я ошибаюсь?
public HttpResponseMessage RetrieveDocument(ID mediaID)
{
MediaItem file = GetMediaItemByID(mediaID);
Stream stream = file.GetMediaStream();
MemoryStream ms = new MemoryStream();
stream.CopyTo(ms);
var result = new HttpResponseMessage(HttpStatusCode.OK) { Content = new ByteArrayContent(ms.GetBuffer()) };
result.Content.Headers.ContentDisposition = new ContentDispositionHeaderValue("attachment") { FileName = file.Name + "." + file.Extension };
result.Content.Headers.ContentType = new MediaTypeHeaderValue(file.MimeType);
return result;
}