我在 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/