Nano Hash - криптовалюты, майнинг, программирование

Как отобразить диалоговое окно сохранения файла при нажатии кнопки загрузки?

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

05.11.2012

  • Разве это не обычно определяется настройкой браузера? т. е. вы не получите приглашение, если вы установите место загрузки по умолчанию. 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

Ответы:


1

Тег PrimeFaces <p:fileDownload> имеет атрибут contentDisposition для того, вы можете установить значение inline (для отображения файла в строке) или attachment (для отображения диалогового окна Сохранить как).

<p:fileDownload ... contentDisposition="attachment" />

Однако по умолчанию он уже равен attachment! У вас не должно быть необходимости явно указывать это.

Таким образом, ваша конкретная проблема вызвана самим вашим веб-браузером. Большинство современных веб-браузеров можно настроить на выполнение определенных действий по умолчанию при извлечении файла определенного типа содержимого. По-видимому, у вас настроено всегда отображать его встроенным независимо от расположения контента. Неясно, какой веб-браузер вы используете, но то, как Firefox обрабатывает его, является наиболее известным и запутанным среди начинающих, поэтому я нацелю свой ответ на него.

Когда вы загружаете, например, PDF-файл в Firefox, он по умолчанию показывает диалоговое окно с двумя вариантами: открыть его (встроенным) в Adobe или сохранить на диск. Ниже есть флажок, чтобы запомнить действие по умолчанию.

введите здесь описание изображения

По-видимому, вы когда-либо отмечали это, пока опция установлена ​​для открытия файла во встроенном режиме, и таким образом Firefox больше никогда не будет спрашивать вас, открывать или сохранять его.

Вы можете перенастроить это, выбрав Инструменты > Параметры > Приложения.

введите здесь описание изображения

05.11.2012
  • извините, я использую contentDisposition=attachment.но не работаю в chrome, а также в firefox. 05.11.2012
  • Вы прочитали и поняли ответ? :) Попробуйте прочитать текст, а не смотреть только на 1-й блок кода. 05.11.2012
  • В Настройках Chrome --> Показать дополнительные настройки --> Загрузки --> выберите Спрашивать, где сохранить каждый файл перед загрузкой. 05.11.2012
  • Новые материалы

    Кластеризация: более глубокий взгляд
    Кластеризация — это метод обучения без учителя, в котором мы пытаемся найти группы в наборе данных на основе некоторых известных или неизвестных свойств, которые могут существовать. Независимо от..

    Как написать эффективное резюме
    Предложения по дизайну и макету, чтобы представить себя профессионально Вам не позвонили на собеседование после того, как вы несколько раз подали заявку на работу своей мечты? У вас может..

    Частный метод Python: улучшение инкапсуляции и безопасности
    Введение Python — универсальный и мощный язык программирования, известный своей простотой и удобством использования. Одной из ключевых особенностей, отличающих Python от других языков, является..

    Как я автоматизирую тестирование с помощью Jest
    Шутка для победы, когда дело касается автоматизации тестирования Одной очень важной частью разработки программного обеспечения является автоматизация тестирования, поскольку она создает..

    Работа с векторными символическими архитектурами, часть 4 (искусственный интеллект)
    Hyperseed: неконтролируемое обучение с векторными символическими архитектурами (arXiv) Автор: Евгений Осипов , Сачин Кахавала , Диланта Хапутантри , Тимал Кемпития , Дасвин Де Сильва ,..

    Понимание расстояния Вассерштейна: мощная метрика в машинном обучении
    В обширной области машинного обучения часто возникает необходимость сравнивать и измерять различия между распределениями вероятностей. Традиционные метрики расстояния, такие как евклидово..

    Обеспечение масштабируемости LLM: облачный анализ с помощью AWS Fargate и Copilot
    В динамичной области искусственного интеллекта все большее распространение получают модели больших языков (LLM). Они жизненно важны для различных приложений, таких как интеллектуальные..