使用javascript、angular.js和sql.js,如何从url获取文件对象?
我正在使用查询字符串从浏览器URL获取服务器上sqlite db文件的URL 因此,在应用程序中,我有文件url 然后我在该url上调用$http.get函数 这会给我文件中的数据,但是我用来读取数据的库需要一个file对象 有没有办法从$http.get中的参数创建文件对象?参数包括数据、状态、标题和配置,我还有文件名 我已尝试构造blob,但不断收到一个错误,提示“数据库磁盘映像格式不正确”。以下是$http.get函数中的blob构造:使用javascript、angular.js和sql.js,如何从url获取文件对象?,javascript,angularjs,sqlite,Javascript,Angularjs,Sqlite,我正在使用查询字符串从浏览器URL获取服务器上sqlite db文件的URL 因此,在应用程序中,我有文件url 然后我在该url上调用$http.get函数 这会给我文件中的数据,但是我用来读取数据的库需要一个file对象 有没有办法从$http.get中的参数创建文件对象?参数包括数据、状态、标题和配置,我还有文件名 我已尝试构造blob,但不断收到一个错误,提示“数据库磁盘映像格式不正确”。以下是$http.get函数中的blob构造: ...
...
var blob = [];
var blob2 = {fileName:null};
$http.get(fileName).
success(function (data, status, headers, config) {
blob[0] = data;
var theBlob = new Blob(blob, {name:fileName},{status:status},{headers:headers},{config:config}, {type : ''});
var r = new FileReader();
r.onload = function () {
var Uints = new Uint8Array(r.result);
db = new SQL.Database(Uints);
...
我还尝试通过添加$http.get数据、状态、标题和配置部分作为blob[]数组的更多部分来构建blob,并将其传递给新的blob构造函数
非常感谢您的帮助,谢谢 最后,我使用了一个按钮,并将LoadFromURL事件分配给它,这样我就不必构建自己的blob了。当我构建自己的blob时,sql.js无法解析我的sqlite db文件。看起来好像缺少标题,但我无法以sql.js能够正确读取的方式添加它们
对于修改后的用例,“从url加载”按钮选项可以正常工作。我甚至隐藏了按钮,除非url中有查询字符串返回的数据。这意味着要从url加载的按钮仅在url中包含查询字符串时显示 我基本上是在尝试模仿html输入类型=文件功能,但是文件名来自URL查询字符串,而不是输入标记。这里有一个stackoverflow问题,开发者放弃了,并表示这是不可能的,但社区没有任何确认: