问题标签 [bloburls]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
javascript - 是否可以使用客户端生成的 blob url 保存到 Google Drive
我正在生成一个 CSV 客户端并将其放入 Blob,然后创建一个对象 URL。
我试图完成的是生成这个 blob URL,然后将文件保存到 Google Drive。我在这个例子中使用了保存到驱动器按钮,但它似乎甚至没有加载保存按钮,除非我去掉“blob:http:”,在这种情况下它会看起来正确加载按钮,但这不是一个有效的文件了。
这甚至可以将 blob 文件保存到 Google Drive 吗?
这是我的代码的样子:
谢谢!
javascript - 在 JavaScript 中将任何字符串转换为 Base64
我希望将文件的内容作为字符串(任何文件类型),并仅使用 JavaScript 将该字符串转换为 Base64 字符串,以便在 blob url 中输出。在许多情况下 btoa() 不起作用,显然是因为它不接受不是 8 位的信息。我需要能够将任何字符串转换为 Base64 字符串。如果这是可能的,有人可以提供解决方案吗?
javascript - 如何使用 IndexedDB 制作一个非常长的字符串而不会使浏览器崩溃?
我正在编写一个 Web 应用程序,它会生成一个可能很大的文本文件,用户将下载该文件,并且所有处理都在浏览器中完成。到目前为止,我能够以小块读取超过 1 GB 的文件,处理每个块,逐步生成大输出文件,并将不断增长的输出存储在 IndexedDB 中。我更天真的尝试将所有结果保存在内存中,然后在最后将它们序列化到一个文件中,这导致所有浏览器崩溃。
我的问题有两个:
我可以在不先将整个内容读入内存的情况下附加到 IndexedDB 中的条目(字符串或数组)吗?现在,这个:
在输出开始变大后导致崩溃。我可以只将一堆小条目写入数据库,但无论如何我必须稍后将它们全部读入内存以连接它们。请参阅我的问题的第 2 部分...
我可以创建一个数据对象 URL 来引用 IndexedDB 中的一个值而不将该值加载到内存中吗?对于小字符串,我可以这样做:
但是对于大字符串,这并不太好。事实上,它在加载字符串之前就崩溃了。似乎使用
get()
IndexedDB 的大读取至少会导致 Chrome 崩溃(甚至开发人员工具也会崩溃)。
如果我使用 Blob 而不是字符串会更快吗?这种转换便宜吗?
基本上我需要一种方法,使用 JavaScript,将一个非常大的文件写入磁盘,而无需在任何时候将整个文件加载到内存中。我知道您可以提供createObjectURL
一个文件,但这在我的情况下不起作用,因为我正在从用户提供的文件中生成一个新文件。
javascript - 带有 Blob URL 的 404 的 XMLHttpRequest 状态
我正在尝试将 getUserMedia 生成的 blob URL 上传到服务器。 其他人想做同样的事情,这个问题已经得到解答。
我对 XHR 请求使用与回答该问题的人相同的代码,但我得到了 404。我做了一个小提琴,当您查看控制台时也会发生同样的事情。我的网站上也有一个活生生的例子,同样的事情也会发生。
这是需要一些 TLC 的代码:
其他人似乎都能做到这一点,因为这已经讨论过了。
我正在使用 ChromeOS,41.0.2252.2 开发。到底发生了什么,为什么我不能得到 blob?
javascript - 如何在严格模式下将附件下载为二进制数据?
我正在使用以下函数在 Office 365 应用程序中下载附件文件,作为二进制数据:
它在 Chrome 浏览器中成功运行,但是当我通过 Outlook 桌面客户端打开它时出现以下错误:
错误类型错误:在严格模式下不允许分配给只读属性
执行此行时发生错误:
此实施是否有任何替代解决方案?
html5-video - 什么是 blob URL,为什么使用它?
我在使用 blob URL 时遇到了很多问题。
我在 YouTube 上搜索src
视频标签,发现视频src
如下:
我打开了src
视频中的 blob URL,它给出了错误。我无法打开链接,但它正在使用src
标签。这怎么可能?
要求:
- 什么是 blob URL?
- 为什么使用它?
- 我可以在服务器上创建自己的 blob URL 吗?
- 如果您有任何其他详细信息
javascript - Windows Edge 并打开一个 blob url
尝试在 Windows Edge(20.10240.16384,这是 Microsoft 提供的 IE11 VM 中的版本)中打开带有 blob url 的新窗口时,我得到了一些奇怪的结果。
在线上
我收到“访问被拒绝”错误,看起来与 CORS 相关,这有点道理,因为它在技术上不是同一个域。但是 BLOB url 在技术上没有域?
这是 Edge 中的错误吗?还是我做的事情不太对?此代码适用于 IE、Chrome 等。
javascript - 如何将 .xlsx 数据作为 blob 保存到文件
我对这个问题有类似的问题(Javascript:Exporting large text/csv file crashs Google Chrome):
我正在尝试保存由excelbuilder.js的EB.createFile()
函数创建的数据。如果我将文件数据作为href
链接的属性值,它就可以工作。但是,当数据很大时,它会使 Chrome 浏览器崩溃。代码是这样的:
我使用 excelbuilder.js 创建数据的代码如下:
正如类似问题(Javascript:导出大文本/csv 文件使 Google Chrome 崩溃)的答案所建议的那样,需要创建一个 blob。
我的问题是,文件中保存的不是 Excel 可以打开的有效 Excel 文件。我用来保存的代码blob
是这样的:
如果我将[data]
上述代码中的替换为[Base64.decode(data)]
,保存的文件中的内容看起来更像是预期的 excel 数据,但仍然无法被 Excel 打开。
谢谢!
javascript - 如何使用 OAuth 在 javascript 中下载大文件而不将整个文件存储在浏览器中?
我有一个闭源 SaaS Web 应用程序,我的用户需要 OAuth 才能访问一些数据。大部分可用数据都是二进制的,如果用户可以下载文件,而不是在浏览器中做所有事情,处理起来会容易得多。
我可以编写 javascript 并将其部署在 webapp 中,因此我可以触发 OAuth 身份验证并将所需的Authorization
令牌标头添加到数据请求中。
除了 HTTP 标头之外,不可能以任何其他方式(例如,查询参数)发送授权,因此我无法使用 URL 制作简单的 HTML 锚标记以允许用户将数据下载为文件。
我相信我可以使用Blob URL来启用此数据的下载,并回退到旧浏览器的数据 URL。
两个问题:
有没有更简单的方法可以让我的用户将数据下载为文件,但仍然注入 HTTP 标头?
我可以流式传输数据,因此我不需要 100MB 的数据 URL 吗?