fileReader.readAsArrayBuffer() Node.js 中的等效方法?
fileReader.readAsArrayBuffer() equivalent method in Node.js?
我有一个 File object and I want to pass it to PDF.js 的 getDocument
方法。在前端,我会像这样使用 getDocument
方法:
pdfjs.getDocument(fileReader.readAsArrayBuffer(myFileHere))
如何使用 Node.js? I am also using Express.js and Multer 实现上述内容。
我不知道 PDF.js 是否能够在 Node 上 运行,但我们假设它是。
至少 readFile
(or readFileSync
if you prefer to be obtaining the contents "immediately") procedure available in Node, files may be read into Buffer
个对象,给定文件路径。
如果您查看上面链接的 Buffer
的文档,您还会发现指定这些是 UInt8Array
:
的实例
The Buffer class is a subclass of JavaScript's Uint8Array class and extends it with methods that cover additional use cases.
更进一步,UInt8Array
class 的对象,也是 TypedArray
class (by the same specification that specifies the former), has a property named buffer
, which lets you access the, well, underlying buffer1 that is... an ArrayBuffer
!
的对象
因此,您应该能够使用以下变体,将带有某些文件内容的 ArrayBuffer
传递给 PDF.js:
pdfjs.getDocument(require("fs").readFileSync("/path/to/file").buffer);
我必须假设您必须按路径读取文件——我假设您的 fileReader
是一个 FileReader
,它(与其误导性名称相反)读取 Blob
个对象(而不是文件)-- 并且 Node 没有任何 Blob
class 定义! 所以如果你不想通过某些路径读取文件,那么您必须告诉我们您是如何使用 Node 加载文件内容的。
1 不要因为这里到处都是“缓冲区”这个词而责怪我,它一直都是缓冲区,显然——我没有设计任何这些classes ;)
我有一个 File object and I want to pass it to PDF.js 的 getDocument
方法。在前端,我会像这样使用 getDocument
方法:
pdfjs.getDocument(fileReader.readAsArrayBuffer(myFileHere))
如何使用 Node.js? I am also using Express.js and Multer 实现上述内容。
我不知道 PDF.js 是否能够在 Node 上 运行,但我们假设它是。
至少 readFile
(or readFileSync
if you prefer to be obtaining the contents "immediately") procedure available in Node, files may be read into Buffer
个对象,给定文件路径。
如果您查看上面链接的 Buffer
的文档,您还会发现指定这些是 UInt8Array
:
The Buffer class is a subclass of JavaScript's Uint8Array class and extends it with methods that cover additional use cases.
更进一步,UInt8Array
class 的对象,也是 TypedArray
class (by the same specification that specifies the former), has a property named buffer
, which lets you access the, well, underlying buffer1 that is... an ArrayBuffer
!
因此,您应该能够使用以下变体,将带有某些文件内容的 ArrayBuffer
传递给 PDF.js:
pdfjs.getDocument(require("fs").readFileSync("/path/to/file").buffer);
我必须假设您必须按路径读取文件——我假设您的 fileReader
是一个 FileReader
,它(与其误导性名称相反)读取 Blob
个对象(而不是文件)-- 并且 Node 没有任何 Blob
class 定义! 所以如果你不想通过某些路径读取文件,那么您必须告诉我们您是如何使用 Node 加载文件内容的。
1 不要因为这里到处都是“缓冲区”这个词而责怪我,它一直都是缓冲区,显然——我没有设计任何这些classes ;)