如何在 JavaScript 中将文件加载到字节数组中

How to load a file into a byte array in JavaScript

本文关键字:加载 到字节 数组 文件 JavaScript      更新时间:2023-09-26

我正在用cordova开发一个移动应用程序。应用程序在某些时候需要离线,这意味着它必须在内部数据库中有数据。

数据由一堆字段组成,其中一些是文件的链接。例如:

var restaurant = {
   name: 'Restaurant X'
   address: 'So far'
   logo: http://www.restaurantX.com/logo.png
   image: pics/restaurant-x.jpg
}

当用户决定离线时,我们应该从数据库中提取所有相关信息(这一点被清除)并下载所有相关图像(这是我卡住的地方)。在这一点上,我认为有两个选项,第一个是将所有文件作为文件或数据库中的数据下载到移动设备,但是,项目负责人说,必须将图像另存为数据库中的blob。

我一直在寻找一个函数将文件内容转换为字节数组以将其保存到数据库中,但我需要一个同步函数,因为我必须在将行保存在数据库中之前等待图片。

function(tx, row){
    var query = "INSERT INTO Restaurants (name, address, logo, image) values (?,?,?,?)";
    var logo = null; // I need to fill it with the logo
    var picture = null; // I need to fill it with the picture
    tx.executeSql(query, [row["nombre"], row["address"],logo,picture], onSuccess, onError);
});

如果这个问题太基础,我很抱歉,我实际上是 JavaScript 的新手。

如果你的映像序列化例程是异步的,并且你想在序列化成功时存储它,你绝对应该看看承诺。有关承诺的更多详细信息,您可以在此处查看