Я нашел несколько вопросов по этому поводу, но каждый раз, когда я пробую эти ответы, я всегда загружаю только один файл или псевдоним.
Я пытаюсь создать код для загрузки файла (.h264 и .json).), похоже, это работает для некоторых людей:
- Загрузка нескольких файлов одним действием
- Как разрешить пользователю загружать несколько файлов при нажатии кнопки?
Моя последняя попытка заключается в следующем:
function(uri, data, name) {
let link = document.createElement("a");
link.download = name;
link.href = 'data:'+data+';charset=utf-8;base64,'+uri;
link.target = "blank_";
document.body.appendChild(link);
link.click();
document.body.removeChild(link);
}
uri
- это данные моего файла, полученные ранее с помощью axios.data
является типом пантомимы.
Эта функция используется здесь:
ListPath.forEach(path => {
axios.all([axios.get(path+".h264"), axios.get(path+".json")]).then((data) => {
console.log(data[0], data[1]);
Utils.downloadFile(data[0].data, 'video/H264', "movie.h264");
Utils.downloadFile(data[1].data, 'application/JSON', "data.json");
}).catch(error => console.log(error))
})
И когда я нажимаю, чтобы загрузить одну вещь (один h264 и его json, связанный), он пытается загрузить толькоJSON и не удалось («Ошибка сети») и перенаправить на about:blank
.Если я добавлю комментарий в строку json, то он загрузит только перенаправление.
Я также попробовал метод с window.open()
, так что код такой:
ListPath.forEach(path => {
window.open(path+".h264", '_blank');
window.open(path+".json", '_blank');
})
Вот видео h264Это загрузка, но она дает только псевдоним реальной ссылки (Например, если мы загружаем наш файл на http://mywebsite.com/data.json
, а в файле он дает одну строку с http://mywebsite.com/data.json
), а для json он отображался только на другой вкладке.
Я использую Chrome под macOS для тестирования.
Я также пробовал модуль js-download-file
npm, но проблема та же, что и раньше.