Двоичный файл MVC 3 ContentResult со странной проблемой Firefox - PullRequest
0 голосов
/ 13 мая 2011

У меня есть приложение MVC 3, которое позволяет пользователям загружать файлы с некоторыми данными ввода.Я установил контроллер, который извлекает эти документы и буферизирует их для пользователя следующим образом:

[OutputCache(Duration = 1200, VaryByParam = "id")]
public ContentResult GetNarrative(int id)
{
    Response.Clear();
    Response.BufferOutput = true;
    Response.ContentType = "application/octet-stream";

    var narrative = attachRepo.GetNarrative(id);
    if (narrative == null || narrative.Narrative == null)
        return null;

    Response.AddHeader("Content-Disposition", 
        string.Format("attachment;filename={0}", 
            Server.UrlEncode(narrative.Filename)));

    Response.OutputStream.Write(narrative.Narrative.ToArray(), 
        0, narrative.Narrative.ToArray().Length);
    Response.OutputStream.Flush();
    return Content("");
}

Это работает хорошо и хорошо, интересно то, что когда у меня есть строка выходного кэша, мой firefoxдиалог загрузки выглядит так

Однако, когда я закомментирую строку выходного кэша, она выглядит как ожидаемый диалог

На самом деле это не проблема блокировки, так как в IE она прекрасно работает, а Chrome загружается по умолчанию, но мне любопытно, почему это происходит, и если кто-то сталкивался с этим и обходил его.

Спасибо!

1 Ответ

0 голосов
/ 04 июня 2011

Я обнаружил, что firefox игнорирует имя файла во вложении.Он имеет тенденцию использовать URL для установки имени файла.

Попробуйте поставить в конце URL? Filename.docx

и посмотреть, исправит ли это что-то.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...