我有一个上传PDF文件的应用程序,然后必须将该文件转换为二进制文件(在后端而不将文件保存在临时文件夹中)以将其存储在数据库中。
我可以上传文件并读取数据,但是,我无法将其转换为二进制文件。
以下是我的app.js
var upload = require("express-fileupload");
app.use(upload());
function upload_file(req, res, next) {
console.log('here');
if (!req.files) {
res.send({
status: false,
message: 'No file uploaded'
});
}else if (req.method == "POST") {
console.log('here');
var form = new formidable.IncomingForm();
console.log(form);
let file = req.files.fileToUpload;
console.log(file);
}
}一旦上传了pdf文件,该函数的输出如下:

我尝试了const encoded = req.files.fileToUpload.buffer.toString('base64');,得到了一个错误。我也尝试过fs.readFileSync,但是由于我没有在本地存储文件,它会抛出一个错误。
发布于 2020-10-08 13:35:12
根据文档,req.files.fileToUpload.data应该在缓冲区中包含文件的数据:
req.files.foo.data:文件的缓冲区表示,如果useTempFiles选项设置为true,则返回空缓冲区。
因此,您应该能够使用data并进一步处理此缓冲区。
https://stackoverflow.com/questions/64263019
复制相似问题