Мне трудно понять, что происходит не так. Мое приложение попадает в API для получения документа. Происходит загрузка, но зависает. В конце концов это закончится (либо с ошибкой, либо полностью), но когда я пытаюсь открыть, скажем, PDF, я получаю «не могу открыть PDF» или что-то в этом роде. Работает локально.
мой контроллер:
[Route("api/listing/attachment")]
[HttpGet]
public async Task<IHttpActionResult> GetAttachmentAsync(string fileName)
{
var attachment = await _repository.GetAttachmentAsync(fileName);
var response = HttpContext.Current.Response;
response.Clear();
response.ContentType = "application/x-download";
var removePath = fileName.Substring(fileName.IndexOf("/", fileName.IndexOf("/", StringComparison.Ordinal) + 1, StringComparison.Ordinal) + 1);
response.AddHeader("content-disposition", string.Format("attachment; filename={0}", removePath));
response.AddHeader("content-length", attachment.Length.ToString());
response.BinaryWrite(attachment);
response.Flush();
return null;
}
мой репозиторий:
public async Task<byte[]> GetAttachmentAsync(string fileName)
{
var container = _blobClient.GetContainerReference(_containerName);
var blockBlob = container.GetBlockBlobReference(fileName);
using (var memoryStream = new MemoryStream())
{
await blockBlob.DownloadToStreamAsync(memoryStream);
return memoryStream.ToArray();
}
}