javascript - Jquery中使用的Blob是什么

标签 javascript jquery blob

我在 jQuery 中搜索一些内容时遇到了 blob。谷歌搜索了一下,但无法确切地弄清楚它是什么样的概念。

我找到了通过 Ajax 下载 pdf 文件的代码。

$.ajax({
    method: 'GET',  
    dataType: 'blob',
    data: { report_type: report_type, start_date: start_date, end_date: end_date, date_type: date_type },
    url: '/reports/generate_pdf.pdf',
        success: function(data) {
            var blob=new Blob([data]);
            var link=document.createElement('a');
            link.href=window.URL.createObjectURL(blob);

            link.download="Report_"+new Date()+".pdf";
            link.click();
            console.log("pdf printed");
        }
});

此代码工作正常,但打印空 pdf,没有静态或动态内容。但有一个奇怪的行为。 IE。如果计算的动态数据太大,则会生成多个页面。

我只是想弄清楚blob的概念,以便我自己弄清楚这段代码在做什么以及blob是如何工作的。

任何适当的指导或帮助将不胜感激。提前致谢!

最佳答案

这也在另一篇文章中引用 - 请参阅 this Stack Overflow post .

BLOB 代表二进制大型对象对象。可以将其视为存储在 SQL 数据库中的二进制数据的集合。

BLOB 可以存储图像、视频和音频等多媒体内容,但它实际上可以存储任何类型的二进制数据。由于 BLOB 的默认长度不是标准的,因此您可以将每个 BLOB 的存储容量定义为您想要的长度,最多 2,147,483,647 个字符 - 请参阅此示例 here在 MariaDB 的文档中。

由于 jQuery 没有办法处理 Blob,您可以尝试使用 native Blob 接口(interface)。来自 MDN's documentation :

var oReq = new XMLHttpRequest();
oReq.open("GET", "/myfile.png", true);
oReq.responseType = "arraybuffer";

oReq.onload = function(oEvent) {
  var blob = new Blob([oReq.response], {type: "image/png"});
  // ...
};

oReq.send();

关于javascript - Jquery中使用的Blob是什么,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39008063/

相关文章:

performance - Oracle 10g 小 Blob 或 Clob 没有被内联存储?

javascript - vue.js 缓存视频并播放

javascript - CoffeeScript +三.js : scene undefined

php - 使用 PHP 和 Ajax 进行 MySQL 查询

javascript - 星级评定系统(半星)

Jquery move 表行但不 move 表头

javascript - 为什么我的 JavaScript 函数没有填充我的数组?

javascript - SvelteKit - "ReferenceError: File is not defined"

mysql - 在 blob 中存储数据与存储指向文件的指针之间有什么区别?

mysql - SQLAlchemy/MySQL 二进制 blob 正在使用 utf-8 编码吗?