gpt4 book ai didi

javascript - 从 JavaScript 字符串保存文件而不访问服务器

转载 作者:行者123 更新时间:2023-11-29 16:27:00 24 4
gpt4 key购买 nike

如果我在 JavaScript 中有一个内存字符串(例如 Excel 或 PDF 格式),并且我想弹出一个保存对话框以便用户可以将这些字节保存到文件中,我将如何执行此操作?我试图避免回到服务器。如果我要返回服务器,我可以在响应中发送正确的 HTTP header ,告诉浏览器我正在发送文件。但我想从 JavaScript 执行此操作,因为我已经在客户端上拥有了所需的字节。

这可能吗?

编辑:
我应该澄清我实际上在这里寻找什么。我正在使用 Silverlight 应用程序。在 Silverlight 中,我可以弹出一个保存对话框并保存字节(在本例中,假设它们是 Excel 字节)。这似乎是人们在下面建议使用 Flash 时所建议的。 Silverlight 提供相同的功能。

但是,我更希望 Excel 文件在新的浏览器窗口中打开。如果我在服务器上生成文件,我可以很容易地做到这一点,因为我可以发送正确的 header 。但我已经在客户端上有了 Silverlight 中的字节。有什么方法可以在新的浏览器窗口中打开该文档,以便用户只需单击“打开”按钮,而无需选择保存位置并导航到该文件?

而且我无法使用浏览器外应用程序选项。我知道可以通过 COM 互操作与 Excel 进行交互来使用它。但在这种情况下这是不行的。

但我可以通过 Silverlight 与 JavaScript 进行互操作。因此,我希望能够以某种方式使用 JavaScript 来打开浏览器窗口并将 Excel 字节流式传输到其中。

最佳答案

您可以使用data URIs将文件嵌入到 HTML 文档中;例如,http://jsfiddle.net/dqWae/创建一个启动维基百科标题图像下载的链接。 (MIME 类型硬编码为 application/octet-stream,但您当然可以将其指定为 PDF 或 XLS)。

您需要将文件的字节编码为 base 64并为资源创建数据 URI。然后,创建一个新的 anchor 元素,其 href 属性是数据 URI。如果您想自动启动下载,programmatically issue a click event到 anchor 元素。

关于javascript - 从 JavaScript 字符串保存文件而不访问服务器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5082404/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com