Как запустить загрузку файла, используя строку кода js (для этого не нужно, чтобы пользователи взаимодействовали с HTML) - PullRequest
0 голосов
/ 20 марта 2020

Я не очень много знаю Javascript, но я строю это онлайн-задание для психологического эксперимента. В задании участвовали go через это javascript «приложение» (или как я его назову). В какой-то момент мне нужно загрузить .docx на их компьютер через строку кода. Мне интересно, как это сделать.

Я подумал, что ответ на этот вопрос будет легко найти в Интернете, но это не так. Все ресурсы, которые я могу найти, описывают создание кнопки или HTML вещи, которая вызывает загрузку файла, но мне нужно, чтобы эта загрузка запускалась через строку кода в функции, которая уже запущена. (У меня уже есть .docx, сохраненный в сети. Я не пытаюсь сгенерировать .docx, используя код. js).

Есть предложения?

Я пытался использовать это загрузить. js код, но я не смог заставить его работать. Когда я делаю что-то вроде приведенного ниже кода, он просто загружает .txt файл с именем «file_name.txt», где текст «/filepath.docx/"

download('/filepath.docx', 'file_name', 'test')

Любая помощь будет принята с благодарностью. Кроме того, я знаю еще меньше о HTML.

Спасибо

Я думаю, что нашел решение:

var a = document.createElement('A');
var filePath = 'file_path.docx;
a.href = filePath;
a.download = filePath.substr(filePath.lastIndexOf('/') + 1);
document.body.appendChild(a);
a.click();
document.body.removeChild(a);

Я нашел это решение в StackOverflow здесь и здесь .

1 Ответ

0 голосов
/ 20 марта 2020

Мне кажется, проблема в третьем параметре функции загрузки , который является MineType . так как это .docx, вы можете позволить браузеру определять тип, вызывая его следующим образом:

download('/filepath.docx', 'file_name.docx');

Взят из документации для скачивания. js

strMimeType MIME-тип содержимого файла для загрузки. Хотя это и необязательно, он помогает браузеру предоставлять пользователю более дружелюбную информацию о загрузке, побуждая его принять загрузку.

...