【发布时间】:2021-03-01 23:29:48
【问题描述】:
在反应中,我正在根据this post中提到的 John Culviner 的解决方案测试我的文件下载
axios.post('api/downloadMyFile',
data
).then((response) => {
const url = window.URL.createObjectURL(new Blob([response.data]))
const a = document.createElement('a');
a.href = url;
a.download = "test.zip"
document.body.appendChild(a);
a.click();
window.URL.revokeObjectURL(url);
}).catch((err) => {
}
所以文件test.zip 正在下载。但是当我在保存后尝试打开它时,我在 Windows 中收到 Compressed Zip 文件夹错误。
另外,我注意到我不需要在a.download = "test.zip" 行中指定文件的名称,因为 Web 服务正在从共享存储中获取文件并且它已经有了一个名称。
所以在这种情况下,我是否需要在 response 对象中也有文件名? response.filename 之类的东西,这样我就可以在下面的行中使用它,而不是手动命名它:
a.download = response.filename
【问题讨论】:
-
你让我们假设通过 axios 检索到的文件是一个有效的 zip 文件。看起来确实如此。
-
是的,我不知道它为什么抱怨。
-
哎呀 - 我的意思是它不似乎通过 axios 检索到的 zip 文件是有效的。
-
嗯。我的方法有什么问题吗?
标签: javascript reactjs