Я хочу вернуть пользовательский список и несколько файлов в виде вложения в ответ на запрос 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?
Заранее спасибо !!