Загрузка файла WebAPI

Мне нужно создать метод WebAPI, который загружает файл. Файл загружается правильно, однако загрузка в клиентском браузере, похоже, застряла почти на 100% (т.е. он не завершается, хотя файл загрузился бы и его можно открыть). Осталось так за пару минут до завершения. В чем может быть проблема? Ниже приведен тестовый код, который повторяет мою проблему

[HttpGet]
public HttpResponseMessage GetFile()
{
    string fileName = @"c:\temp\test.zip";

    MemoryStream responseStream = new MemoryStream();
    using (FileStream source = File.Open(fileName, FileMode.Open))
        source.CopyTo(responseStream);

    HttpResponseMessage response = new HttpResponseMessage();
    response.Content = new StreamContent(responseStream);
    response.StatusCode = HttpStatusCode.OK;
    response.Content.Headers.ContentType = new MediaTypeHeaderValue(ContentTypeHelper.Instance.GetFileContentType(fileName));
    response.Content.Headers.ContentDisposition = new ContentDispositionHeaderValue("attachment");
    response.Content.Headers.ContentDisposition.FileName = fileName;
    response.Content.Headers.ContentLength = responseStream.Length;
    return response;
}

0 ответов

Похоже, вам нужно перемотать MemoryStream после копирования:

MemoryStream responseStream = new MemoryStream();
using (FileStream source = File.Open(fileName, FileMode.Open))
    source.CopyTo(responseStream);
responseStream.Seek(0, SeekOrigin.Begin);
Другие вопросы по тегам