Привязать blob к zip-файлу и вернуть его из Web Api
Я создал метод веб-API для загрузки файла BLOB-объекта в виде zip-файла, как показано ниже, и упомянул тип содержимого:"application/zip" и файл как xyz.zip. Но загруженный файл (xyz.zip) не содержит никаких данных. Я попытался скопировать поток BLOB-объекта в поток в записи, созданной в архиве, но у меня нет возможности привязать данные MemoryStream к Zip-файлу, и я очень новичок в загрузке файлов Web API и Zip. Так Как связать данные MemoryStream с Zip-файлом файл?
Мой метод веб-API,
public async Task<HttpResponseMessage> DownloadDocumentAsync(Use user, long documentId)
{
var document = DataContext.Documents.FirstOrDefault(d => d.DocumentId == documentId && d.IsActive && d.AccountId == user.AccountId);
CloudBlockBlob blob = GetBlobReferece(document);
MemoryStream memStream = new MemoryStream();
await blob.DownloadToStreamAsync(memStream);
HttpResponseMessage httpResponseMessage = new HttpResponseMessage();
httpResponseMessage.Content = new ByteArrayContent(memStream.ToArray());
httpResponseMessage.Content.Headers.Add("x-filename", document.FileName);
httpResponseMessage.Content.Headers.ContentType = new MediaTypeHeaderValue("application/zip");
httpResponseMessage.Content.Headers.ContentDisposition = new ContentDispositionHeaderValue("attachment");
httpResponseMessage.Content.Headers.ContentDisposition.FileName = "xyz.zip";
httpResponseMessage.StatusCode = HttpStatusCode.OK;
return httpResponseMessage;
}
Когда я запускаю приведенный выше код, я могу загрузить файл "xyz.zip", но он показывает следующую ошибку, когда я пытаюсь открыть это. Так что, где я ошибся, или, пожалуйста, помогите мне с этим примером кода.
Error: The archive is either in unknown format or damaged.