Как прикрепить несколько файлов и пользовательский список в качестве ответа на запрос через web api в c# - PullRequest
0 голосов
/ 19 апреля 2020

Я хочу вернуть пользовательский список и несколько файлов в виде вложения в ответ на запрос GET через веб-API. Я провел некоторые онлайн-исследования и следовал за некоторыми решениями. Вот мой код:

public class FileDetails 
{
   public byte[] Contents {get; set;}
   public string Name {get; set;}
   public string Extension {get; set; }
}


public async Task<HttpResponseMessage> GetFilesAsync() 
{
   var content = new MultipartContent();

   List<FileDetails> details = GetFileDetails();

   //section 1

   var objectContent = new ObjectContent<List<FileDetails>>(details, new System.Net.Http.Formatting.JsonMediaTypeFormatter());
   content.Add(objectContent);


  // section 2
   foreach(FileDetail file in details) 
   {
      var fileContent = new StreamContent(new MemoryStream(file.Contents));
      fileContent.Headers.ContentType = new MediaTypeHeaderValue("application/pdf");
      fileContent.Headers.ContentDisposition = new System.Net.Http.Headers.ContentDispositionHeaderValue("attachment");
       fileContent.Headers.ContentDisposition.FileName = file.Name + ".pdf";

      content.Add(fileContent);
   }

   HttpResponseMessage httpResponseMessage = new HttpResponseMessage(HttpStatusCode.OK);
   httpResponseMessage.Content = content;

   return httpResponseMessage;
}

В ответ я получаю примерно следующее:

Content-Type: application/pdf
Content-Disposition: attachment; filename=Sample.pdf

%PDF-1.7
%âãÏÓ
8 0 obj
<<
/Linearized 1
/L 9689
/H [ 930 162 ]
/O 10
/E 8425
/N 1
/T 9403
...

Я пытался отправлять только вложения без раздела 1, но получил тот же ответ. Пожалуйста, объясните мне, как автоматически загружать все вложения при получении запроса на получение.

Ссылка: Как лучше всего обслуживать несколько двоичных файлов из одного метода WebApi?

Заранее спасибо !!

...