ASP.NET образ загрузки MVC, а не дисплей в браузере

Вместо того, чтобы отображать PNG в окне браузера, я хотел бы, чтобы результат действия инициировал диалоговое окно загрузки файла (Вы знаете открытое, сохранить Как, и т.д.). Я могу заставить это работать с кодом ниже использования неизвестного типа контента, но пользователь затем должен ввести в .png в конце имени файла. Как я могу выполнить это поведение, не вынуждая пользователя ввести в расширении файла?

    public ActionResult DownloadAdTemplate(string pathCode)
    {
        var imgPath = Server.MapPath(service.GetTemplatePath(pathCode));
        return base.File(imgPath, "application/unknown");
    }

Решение....

    public ActionResult DownloadAdTemplate(string pathCode)
    {
        var imgPath = Server.MapPath(service.GetTemplatePath(pathCode));
        Response.AddHeader("Content-Disposition", "attachment;filename=DealerAdTemplate.png");
        Response.WriteFile(imgPath);
        Response.End();
        return null;
    }
35
задан RSolberg 9 June 2010 в 16:26
поделиться

2 ответа

Я полагаю, вы можете контролировать это с помощью заголовка content-disposition.

Response.AddHeader(
       "Content-Disposition", "attachment; filename=\"filenamehere.png\""); 
42
ответ дан 27 November 2019 в 07:06
поделиться

Вам нужно установить следующие заголовки в ответе:

  • Content-Disposition: attachment; filename="myfile.png"
  • Content-Type: application/force-download
9
ответ дан 27 November 2019 в 07:06
поделиться
Другие вопросы по тегам:

Похожие вопросы: