Инициирование загрузка файла, которая работает хорошо, даже в IE?

Похоже, вы хотите zip объединить массивы. Делая это:

a = [1, 2, 3, 4]
b = [111, 222, 333, 444]
c = a.zip(b)

установит c в:

[[1, 111], [2, 222], [3, 333], [4, 444]]

, что на почти то, что вы хотите, но вы, вероятно, не хотите, чтобы вложенные массивы. Чтобы избавиться от вложенных массивов, просто позвоните flatten:

c = a.zip(b).flatten()

Теперь c установлено на:

[1, 111, 2, 222, 3, 333, 4, 444]
7
задан Community 23 May 2017 в 12:01
поделиться

1 ответ

Обычный шаблон для страницы файла загрузки (если она у вас есть; лично я их ненавижу):

<script type="text/javascript">
    window.onload= function() {
        window.location= document.getElementById('downloadlink').href;
    }
</script>
<p>
    Your download will begin shortly. If it doesn't,
    <a id="downloadlink" href="file.zip">click here</a>.
</p>

Или то же самое с мета-обновлением вместо сценария. Любой способ должен вести себя примерно одинаково.

Подход метаобновления также работает, но все же адресная строка меняет URL-адрес файла, и основное окно остается пустым после загрузки файла

Этого не должно быть. Есть ли онлайн версия, которую можно протестировать? Обычно, когда браузер принудительно загружает файл любым обычным способом (щелчок по ссылке, location.href, meta-refresh), он должен сохранять предыдущую страницу на экране.

среда не позволяет мне установить заголовки, чтобы P3P вышел

Вам не нужно использовать заголовки для установки политик P3P, HTML-тег работает так же хорошо:

<link rel="P3Pv1" href="/policy.p3p" />

Но зачем тебе это? Если целевой URL просто обслуживает файл, то вообще не нужно устанавливать cookie, так зачем беспокоиться о P3P?

Я отчаянно пытаюсь избежать window.open (), чтобы избежать проблем с блокировщиком всплывающих окон

Если вы используете window.open () в ответ на щелчок пользователя, проблем с блокировщиком всплывающих окон нет.

Не обязательно открывать всплывающее окно, чтобы в любом случае загрузить файл. Я начинаю думать, что в месте назначения загрузки файлов, на которое вы ссылаетесь, есть что-то очень странное - как будто это вовсе не загрузка файлов, а какое-то странное веб-приложение HTML. Ссылка на скачивание не сложно, вы просто ссылаетесь на файл, работа выполнена; вы, кажется, делаете это намного сложнее, чем это есть на самом деле.

Единственная обычная проблема с простой ссылкой на файл состоит в том, что если он содержит текст, HTML, XML или изображение, браузер будет отображать его встроенным вместо загрузки. Единственный способ победить это - использовать заголовок «Content-Disposition: attachment», либо отправив его через скрипт, который устанавливает этот заголовок, либо сконфигурировав веб-сервер для отправки этого заголовка для всех загрузок файлов. Если вы не можете выполнить ни одного из этих действий в своей серверной среде, решения не существует.

5
ответ дан 7 December 2019 в 12:25
поделиться
Другие вопросы по тегам:

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