不带链接的 Typescript blob 文件名

2023-11-25

如何在打字稿中设置blob的文件名?对于 IE,我可以轻松设置文件名,但对于 Chrome,这看起来不可能。基本上我需要类似的东西这个解决方案但用打字稿

downloadFile(data: any) {
    var blob = new Blob([data], {type: 'text/csv'});
    let fileName = 'my-test.csv';

    if (window.navigator && window.navigator.msSaveOrOpenBlob) {
        //save file for IE
        window.navigator.msSaveOrOpenBlob(blob, fileName);
    } else {
        //save for other browsers: Chrome, Firefox

        var objectUrl = URL.createObjectURL(blob);
        window.open(objectUrl);
    }
}

这个函数是从 html UI/Angular 2 调用的:

<button type="button" class="btn btn-success"
(click)="downloadFile('test')">Download <br /> Download </button>

对于 chrome(和 firefox),您需要做一些工作来创建一个<a>元素和调用click:

downloadFile(data: any): void {
    const blob: Blob = new Blob([data], {type: 'text/csv'});
    const fileName: string = 'my-test.csv';
    const objectUrl: string = URL.createObjectURL(blob);
    const a: HTMLAnchorElement = document.createElement('a') as HTMLAnchorElement;

    a.href = objectUrl;
    a.download = fileName;
    document.body.appendChild(a);
    a.click();        

    document.body.removeChild(a);
    URL.revokeObjectURL(objectUrl);
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

不带链接的 Typescript blob 文件名 的相关文章

随机推荐

  • R 中具有多列的逻辑向量

    我有以下数据框 a b c d e TRUE TRUE FALSE TRUE TRUE FALSE TRUE TRUE TRUE FALSE TRUE TRUE FALSE TRUE TRUE TRUE TRUE TRUE FALSE TR
  • 为什么这个解决方案在 Javascript 中有效,但在 Python 中无效? (动态规划)

    我正在学习有关动态编程的教程 并且正在努力在以下问题中实现记忆化 写一个函数叫canSum targetSum numbers 返回True仅当数组中的数字之和达到目标总和时 数组中的所有数字都是正整数 您可以多次使用它们来求解 Examp
  • 如何在 firebase 存储触发函数中获取公共下载链接:“onFinalize”?

    我正在编写一个 firebase 云函数 它将最近上传的文件的下载链接记录到实时数据库 exports recordImage functions storage object onFinalize object gt object 使我可
  • 修复 R/networkD3 包中 Sankey 流程图的顺序

    我想使用桑基流程图可视化美国各州的排名变化 即相对顺序的变化 我正在使用网络d3包并提出以下内容 library dplyr library networkD3 df lt data frame origins state name 1 1
  • 使用本地资源的 SVG 元素的语法

    将 SVG image element 与本地源一起使用时 例如C image png 和互联网上的来源 例如http www google de intl de ALL images logos images logo lg gif 我的
  • Docker-Compose 不会卷我的 php.ini 文件

    我正在尝试使用 docker compose 来存储我的 php ini 文件 以便我可以在本地计算机上即时进行更改 以查看它如何影响主机 不幸的是 到目前为止 我能够将 php ini 文件放入容器的唯一方法是直接在 Dockerfile
  • python:(lambda)函数的字典[重复]

    这个问题在这里已经有答案了 在将 lambda 函数存储到字典中时 我遇到了一些奇怪的行为 如果您尝试将一些默认值传递给循环中的函数 则只会使用最后一个默认值 这里有一些最小的例子 usr bin env python coding utf
  • 从 javascript 生成 Office 打开 XML excel 文件

    有没有办法从 javascript 生成 xlsx 文件并允许用户通过 javascript 下载它 此页面适合在没有互联网连接的情况下以 html 5 离线运行 你可以生成一个data URI 并让用户保存链接 然而 IE8 对数据 UR
  • 无法让 scipy.io.wavfile.read() 工作

    我正在尝试将 wav 文件读入数组 以便可以绘制数组并执行 FFT 我用wave模块打开了文件 现在我很挣扎 建议我使用 scipy io wavfile read filename mmap False 但我没有任何运气 这个函数应该完全
  • 如何在 QML 中创建交错网格视图?

    我正在尝试为我的 QML 应用程序创建一个交错网格视图 如下图所示 我尝试过使用 QML Flow 和 QML Grid 但是它们都没有产生我想要的设计 例如 当我使用 QML Flow 时 它会导致行始终以相同的 Y 值开始 我实现了一个
  • RestFB:使用 Facebook 应用程序获取用户访问令牌

    这就是我所拥有的 static AccessToken accessToken new DefaultFacebookClient obtainExtendedAccessToken
  • AsyncTaskLoader 与 AsyncTask

    Since Honeycomb和v4 Compatibility Library可以使用AsyncTaskLoader 据我了解 AsyncTaskLoader可以通过屏幕翻转等配置更改来生存 是否推荐使用AsyncTaskLoader代替
  • 带有自定义按钮的 Outlook 插件“主页”选项卡

    嘿 我正在尝试在默认情况下创建一个按钮HomeOutlook 2010 中的选项卡 问题是 在 VS2013 中 我添加了一个功能区 视觉 并添加了带有按钮的组 但它不断将其添加到选项卡插件 tab 我需要设置什么才能使自定义组 按钮显示在
  • 如何在Python中将二进制文件读取为十六进制?

    我想读取一个包含数据的文件 以十六进制格式编码 01ff0aa121221aff110120 etc 文件包含 gt 100 000 个这样的字节 有些超过 1 000 000 它们来自 DNA 测序 我尝试了以下代码 以及其他类似的代码
  • PHP中的INI文件到多维数组

    我有下一个 INI 文件 a b c 1 a b d e 2 我正在使用 parse ini file 解析该文件 它返回 array a b c gt 1 a b d e gt 2 但我想创建一个多维数组 我的输出应该是 array a
  • C++ 是否在 std::set、std::map 等的恒定时间内执行 begin/end/rbegin/rend ?

    对于诸如 std set 和 std map 之类的数据类型 其中查找发生在对数时间内 是否需要实现来维护开始和结束迭代器 访问开始和结束是否意味着可能在对数时间内发生查找 我一直假设开始和结束总是在恒定时间内发生 但是我在 Josutti
  • Gradle错误,创建目录失败

    今天在使用 roboelectric 和 junit 启动测试类时遇到了这样的问题 Information Gradle Executing tasks app assembleDebug app assembleDebugUnitTest
  • 如何仅使用 DOM 对象获取 leaflet.js 实例?

    我现在正在构建一个自定义 Knockout js 绑定来处理多边形的绘制 在这种情况下 Knockout API 仅向我提供对 DOM 对象的引用 以访问我需要更新的任何内容 然而 leaflet js 的设计似乎希望用户在其实现中存储地图
  • Plotly 停用 x 轴排序

    我想绘制一个条形图 x 轴上是顾问的 ID 范围在 1000 到 2000 之间 每个顾问都有特定数量的客户 y 轴 现在我想绘制一个条形图 但是 情节性地将顾问 ID 升序排序并将它们解释为整数 但事实并非如此 它们的顺序应该像我精心给出
  • 不带链接的 Typescript blob 文件名

    如何在打字稿中设置blob的文件名 对于 IE 我可以轻松设置文件名 但对于 Chrome 这看起来不可能 基本上我需要类似的东西这个解决方案但用打字稿 downloadFile data any var blob new Blob dat