Typescript:使用blob和xdevapi将arrayBuffer存储到MySQL数据库中



我想存储用户文件(大多数时候是图像,但它可以是任何东西)检索与HTML输入,到MySQL数据库。我想用@mysql/xdevapi

将文件的arrayBuffer存储在MySQL blob中我在用什么:

  • Angular with Electronjs
  • MySQL数据库访问从我的应用程序感谢@mysql/xdevapi

我做了什么:

获取输入文件:

processInputFile(event) {
var file: File = event.target.files[0];
file.arrayBuffer().then((value) => {
this.fileToStore = value;
});

MySQL查询(这里我想更新列" user_comments "one_answers";user_file"从"台阶"开始表:

UpdateStep = (step: TestSteps, fileToStore: ArrayBuffer): Promise<void> => {
return new Promise<void>((resolve, reject) => {
if (this.session === undefined) {
reject(new Error('session is undefined'));
return;
}
var sch = this.session.getSchema("gtb");
var step_table = sch.getTable('step');
step_table.update().set('user_comment', step.user_comment).set('user_file', fileToStore).where('id = ' + step.id).execute().catch(error => { console.error(error); });
resolve();
})
}

当我在MySQL Workbench中下载blob时,我得到一个2kb的文件,而我的初始文件大小是165 kb。我做错了什么?还有我怎样才能把文件找回来让用户下载呢?

我自己弄清楚了,通过将ArrayBuffer转换为Buffer它可以工作:

let file = Buffer.from(fileToStore);

相关内容

  • 没有找到相关文章

最新更新