node.js - 无法使用 FileReader 从 fs 读取文件
问题描述
嗨,我正在尝试读取文件,但 nodejs 中的 fileReader readAsArrayBuffer 函数出现问题。
var FileReader = require("filereader");
let p12_path = __dirname + "/file.p12";
var p12xxx = fs.readFileSync(p12_path, "utf-8");
var reader = new FileReader();
reader.readAsArrayBuffer(p12xxx);//The problem is here
reader.onloadend = function() {
arrayBuffer = reader.result;
var arrayUint8 = new Uint8Array(arrayBuffer);
var p12B64 = forge.util.binary.base64.encode(arrayUint8);
var p12Der = forge.util.decode64(p12B64);
var p12Asn1 = forge.asn1.fromDer(p12Der);
............
}
- - - -错误
Error: cannot read as File: "0�6�\.............
解决方案
您正在阅读的 PDF 文件不是基于文本的格式,并且不应指定编码。根据 fs 文档“如果指定了编码选项,则此函数返回一个字符串”,但因为它主要是一个二进制文件,它读取无效的 UTF8 字符。当您排除编码时,它应该给您一个 Buffer 对象,而不是您最可能想要的。
推荐阅读
- flutter - Flutter中跨行单元格的动画位置
- javascript - 如何在 javascript 中定义 Azure Cosmos DB 容器复合索引?
- javascript - 在嵌套的firebase函数中读取其他用户的快照
- azure-application-insights - Kusto - 按周分组,周末分组
- javascript - 如何在控制台中列出我的机器人所在的所有 Discord 服务器 ID?| 不和谐.js
- python - Python Websocket 只从客户端接收一次
- jquery - 我可以恢复 removeClass className.match 删除的以前的类吗?
- c++ - 模板 c++ 编译器差异 VC++ 不同输出
- css - 当填充/边距妨碍小屏幕上的内容时,你会怎么做?
- python - 虚拟环境中的 ModuleNotFoundError