我正在使用 Cordova 构建移动应用程序。我使用 PouchDB 进行本地存储,因此该应用程序无需互联网即可运行。 PouchDB 与 CouchDB 服务器同步,因此您可以随时随地访问数据。
现在,我需要添加一个函数来将(多个)文件上传到文档。 (诸如 .png .jpg .mp3 .mp4 等所有可能的文件类型的文件)。
我的原始代码没有上传文件:
locallp = new PouchDB('hbdblplocal-'+loggedHex);
function addItem() {
//get info
var itemTitle = document.getElementById('itemTitle').value;
var itemDesc = document.getElementById('itemDesc').value;
var itemDate = document.getElementById('itemDate').value;
var itemTime = document.getElementById('itemTime').value;
//get correct database
console.log(loggedHex);
console.log(loggedInUsername);
//add item to database
var additem = {
_id: new Date().toISOString(),
title: itemTitle,
description: itemDesc,
date: itemDate,
time: itemTime
};
locallp.put(additem).then(function (result){
console.log("Added to the database");
location.href = "listfunction.html";
}).catch(function (err){
console.log("someting bad happened!");
console.log(err);
});
}
我将添加一个指向 JSfiddle 的链接,其中我将尝试添加文件上传。我还包含了 html 部分。
链接到jsfiddle:click here
我注意到控制台中有一个关于没有内容类型的错误。
有人可以帮助我吗?
最佳答案
我认为您没有正确设置附件的content_type
。尝试将 type
更改为 content_type
,如下所示:
var additem = {
_id: new Date().toISOString(),
title: itemTitle,
description: itemDesc,
date: itemDate,
time: itemTime,
_attachments: {
"file": {
content_type: getFile.type,
data: getFile
}
}
};
关于javascript - 将文件上传到 PouchDB/CouchDB,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42276465/