【问题标题】:Downloading Excel (.xlsx) File In Frontend Javascript Via Amazon Presigned URL通过 Amazon Presigned URL 在前端 Javascript 中下载 Excel (.xlsx) 文件
【发布时间】:2020-10-12 05:37:52
【问题描述】:

我有一个亚马逊 S3 URL 从外部服务传回给我,格式为:

https://foo.s3.amazonaws.com/ProjectDownloads/foo/title.xlsx?AWSAccessKeyId=foo&Expires=1602279238&Signature=foo

我对 S3 的工作不多,但我的理解是这是一个预签名 URL - 我可以将它粘贴到我的浏览器中并下载 excel 文件。

如何使用 javascript 直接下载这个文件(在前端,因为我的系统没有运行节点)?

我尝试通过单击生成标签元素 - 但是我的所有文件都下载为已损坏。我可以通过将链接粘贴到浏览器中直接下载文件,它会自动启动下载。

任何帮助将不胜感激。

我尝试了以下方法,但下载的文件出错:

    var link = document.createElement('a');
    link.href = url;
    link.download = 'foo.xlsx';
    document.body.appendChild(link);
    link.click();
    document.body.removeChild(link);

【问题讨论】:

    标签: javascript excel amazon-web-services amazon-s3


    【解决方案1】:

    点击链接不需要JS强制下载;你可以只用 HTML 来做到这一点。而且,源是预签名的 S3 URL 并不重要 - 它适用于任何 URL。

    <a href=“Foo.xlsx” download>click to download</a> 应该为你做。

    查看https://www.w3schools.com/howto/howto_html_download_link.asp 了解浏览器支持矩阵。

    【讨论】:

    • 感谢汤姆的帮助。
    • 希望它有效。如果是,您可以将我的答案标记为已接受。
    猜你喜欢
    • 2021-09-06
    • 1970-01-01
    • 2013-12-04
    • 2015-09-17
    • 2012-04-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多