json - 如何在反应中下载多个文件
问题描述
我搜索并发现了多个关于它的问题,但每次我尝试这些回复时,我总是只下载一个文件或别名。
我尝试使用代码来制作下载文件(.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,它只显示在其他选项卡上。
我在 macOS 下使用 chrome 进行测试。
我也尝试过js-download-file
npm 模块,但问题与以前相同。
解决方案
推荐阅读
- r - 在 GARCH 模型开始时使用 XTS:xtsAttributes(Returns) 中的错误:找不到对象“Returns”
- c# - 从 Angular 应用程序调用 C# 函数
- algorithm - 使用图解决以下 whodunnit 问题
- html - iOS Safari 放大输入框
- gradle - Intellij 无法识别带有 kotlin dsl java 项目的多模块 gradle
- flutter - 在后台/终止的应用程序中运行 Android 本机代码
- javascript - 如何在标签内添加html文本?
- python - df.column.any() < 1 当没有一个值小于 1 时给出 True
- android - 试图将 android 应用程序连接到 mySQL 但它没有连接
- c# - 如何使用 PostgreSQL 函数(使用 Dapper 选择)获取数据库表中的总行数以及一些行?