Content-Disposition для установки имени файла игнорируется в IE6.URL из web.xml отображается как имя файла - PullRequest
2 голосов
/ 02 августа 2010

Это фрагмент кода, который я пытаюсь запустить.Он работает нормально локально, но если я попытаюсь запустить его на сервере Unix, имя загруженного файла будет отображаться в виде URL-адреса, сопоставленного сервлету в web.xml вместо Report.xls.Пожалуйста, помогите мне ...

response.reset();
response.setHeader("Expires", "0");
response.setHeader("Cache-Control","must-revalidate, post-check=0, pre-check=0");
response.setHeader("Pragma", "public");
response.setContentType("application/vnd.ms-excel");
response.setHeader("Content-Disposition","attachment; filename=Report.xls;");

1 Ответ

1 голос
/ 02 августа 2010

Это известная проблема IE.Он действительно полностью игнорирует имя файла в заголовке Content-Disposition и использует последнюю часть URL pathinfo в качестве имени файла по умолчанию в диалоге Сохранить как .Вы должны добавить имя файла загружаемого файла как часть pathinfo.Например, http://example.com/context/reportservlet/report.xls, где сервлет отображается на url-pattern из /reportservlet/* (обратите внимание на конечный /*) в web.xml.

Если вы хотите получить указанное имя файла в сервлете, чтобы вы могли выполнять одно и другое более динамично, тогда вы можете использовать HttpServletRequest#getPathInfo() для этого.

См. Также:

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