不确定现有项目是否正在使用其他数据格式的 blob 文件

Unsure if an existing project is using blob files of some other data format

我正在处理一个由已离开公司的同事创建的应用程序。我正在尝试打开我认为是 blob 文件格式的 PDF,但是 none 教程给出了预期的结果。

我注意到我在 blob 文件之前有一些数据,这让我想知道我是否正确理解了我正在使用的内容。整个 blob 太大,无法在此处 post,但它是这样开始的:

data:application/pdf;base64,JVBERi0xLjcNJeLjz9MNCjIxIDAgb2JqDTw8L0xpbmVhcml6ZWQgMS9MIDQyMTExNC9PIDIzL0UgMzc0MzIwL04gMi9UIDQyMDU3NC9IIFsgMjYxNiA0NDhdPj4NZW5kb2JqDSAgICAgICAgICAg

在我正在阅读的 post 和教程中,例如 this one,他们使用的代码类似于:

var file = new Blob([response], {type: 'application/pdf'});

由于我的 blob 文件包含“application/pdf”部分作为字符串的一部分,我开始怀疑我是否误解了这是另一种文件而不是 blob。我还看到了其他 blob 文件示例,它们也不包括“data:application/pdf;base64,”.

如果文件太大,我在浏览器中打开时会遇到问题。我已经概述了我的问题 in this post,但还没有收到任何建议,所以我正在尝试找到一种不同的方法来解决这个问题。结果不尽如人意,这让我怀疑我是否在寻找正确的东西。

这是我尝试过的以及结果是什么:

var file = new Blob([upload.split(',')[upload.split(',').length - 1]], { type: 'application/pdf' });
var fileURL = URL.createObjectURL(file);

我使用“[upload.split(',')[upload.split(',').length 删除了字符串的“data:application/pdf;base64,”部分- 1]]",以为这只会给我留下 blob 数据,但总是无法打开,结果如下:

所以我的问题是:我是否在使用 blob 文件?如果不是,这是什么类型的数据文件,以便我可以开始寻找更多相关教程?

“Blob 文件”并不是真正的东西。您可以将术语“blob”视为“只是一些二进制数据”,或者如果您是数据库供应商,则称它们为“二进制大对象”。

您的 data:application/pdf;base64,JVBERi0xLjcNJeLjz9MNCjIxIDAgb2JqDTw8L... 字符串是 data URL; a way to represent arbitrary binary data in an URL string. Since the URI has the base64 marker, you know the data is encoded as Base64 并且您可以使用任何您能找到的 Base64 解码器(网上有很多)来解码数据。

您的(截断的)数据开始

%PDF-1.7
%
21 0 obj
<</Linearized 1/L 421114/O 23/E 374320/N 2/T 420574/H [ 2616 448]>>
endobj

所以它代表的是一个有效的 PDF 文件。