Я хочу показать диалоговое окно для сохранения файла (чтобы выбрать путь, по которому вы хотите сохранить файл) при нажатии кнопки загрузки с помощью PrimeFaces. Как я могу этого добиться?
Как отобразить диалоговое окно сохранения файла при нажатии кнопки загрузки?
- Разве это не обычно определяется настройкой браузера? т. е. вы не получите приглашение, если вы установите место загрузки по умолчанию. 05.11.2012
- Добро пожаловать в Stack Overflow! Мы рекомендуем вам изучить свои вопросы. Если вы уже пробовали что-то, добавьте это к вопросу. Если нет, сначала изучите вопрос и задайте его, а потом вернуться. 05.11.2012
- Не знаю, подойдет ли это в вашем конкретном случае, но вы можете установить в ответе HTTP-заголовок
content-disposition
наattachment
, чтобы подсказать браузеру, что нужно отобразить диалоговое окно сохранить как. См. 19.5.1 Content-Disposition протокола HTTP. спец. 05.11.2012 - @Xavi: это управляется с помощью атрибута
contentDisposition
тега загрузки файла PrimeFaces. 05.11.2012 - Отлично, на данный момент я не знаком с JSF, но я уже предполагал, что любой приличный фреймворк найдет способ его предоставить. 05.11.2012
Ответы:
Тег PrimeFaces <p:fileDownload>
имеет атрибут contentDisposition
для того, вы можете установить значение inline
(для отображения файла в строке) или attachment
(для отображения диалогового окна Сохранить как).
<p:fileDownload ... contentDisposition="attachment" />
Однако по умолчанию он уже равен attachment
! У вас не должно быть необходимости явно указывать это.
Таким образом, ваша конкретная проблема вызвана самим вашим веб-браузером. Большинство современных веб-браузеров можно настроить на выполнение определенных действий по умолчанию при извлечении файла определенного типа содержимого. По-видимому, у вас настроено всегда отображать его встроенным независимо от расположения контента. Неясно, какой веб-браузер вы используете, но то, как Firefox обрабатывает его, является наиболее известным и запутанным среди начинающих, поэтому я нацелю свой ответ на него.
Когда вы загружаете, например, PDF-файл в Firefox, он по умолчанию показывает диалоговое окно с двумя вариантами: открыть его (встроенным) в Adobe или сохранить на диск. Ниже есть флажок, чтобы запомнить действие по умолчанию.
По-видимому, вы когда-либо отмечали это, пока опция установлена для открытия файла во встроенном режиме, и таким образом Firefox больше никогда не будет спрашивать вас, открывать или сохранять его.
Вы можете перенастроить это, выбрав Инструменты > Параметры > Приложения.