我使用nedb。
如何上传图像?
我正在尝试此代码。
但是,没有保存的证据。
const Nedb = require('nedb');
const path = require('path');
const { remote } = require('electron');
const dbPath = remote.app.getPath('userData');
const users = new Nedb({
autoload: true,
filename: path.join(dbPath, 'users.db'),
});
// upload something image file.
document.querySelector('input[type=file]').addEventListener('change', (evt) => {
const file = evt.target.files[0];
users.insert(file, (err, docs) => {
console.log(docs); // `{"_id": "hash value"}` only data
});
});
我想保存二进制数据。
请告诉我使用nedb上传图片。
答案 0 :(得分:0)
因为我的解决方案是您不能直接存储,但是您可以做的是使用可以找到的任何库首先将图像转换为字符串或base64字符串,但是根据图像类型,它将生成很长的字符串和质量。
我使用了本机JavaSCript提供的FileReader API:
const fileReader = new FileReader();
fileReader.addEventListener('load', e => {
let imageStrings = (e.target.result);
});
fileReader.readAsDataURL(file);
因此,当您将其发送到Express或任何Web服务器时,您会发现它会在客户端的终端或控制台中引起Size错误消息或413 payload错误消息,因此,如果您使用Express,则可以调整JSON限制和编码参数。 即使您保存了图像字符串,在nedb文件中也很难看(但是嘿,至少现在它可以工作了。)
另一种选择是考虑在GitHub页或https://github.com/louischatriot/nedb/issues/38上此线程上所说的内容,他们谈论将文件上传到您的文件系统中并将其存储在其他位置并进行数据库引用在您的nedb数据库中。
如果找到或找到任何可行的解决方案,请添加解决方案