【问题标题】:Uploading file to PouchDB/CouchDB上传文件到 PouchDB/CouchDB
【发布时间】:2017-04-27 00:43:35
【问题描述】:

我正在使用 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

我注意到控制台中出现关于没有内容类型的错误。

有人可以帮助我吗?

【问题讨论】:

  • 添加 exact 错误信息会更容易为您提供帮助;)
  • 错误:“文档 (id) 上的附件文件缺少 content_type

标签: javascript cordova file-upload couchdb pouchdb


【解决方案1】:

我认为您没有正确设置附件的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
      }
    }
  };

另见docs for working with attachments

【讨论】:

  • 啊,我明白了!我确定我以前有过。无论如何,谢谢你
猜你喜欢
  • 2015-10-28
  • 1970-01-01
  • 1970-01-01
  • 2017-02-24
  • 1970-01-01
  • 1970-01-01
  • 2013-06-07
  • 2020-08-02
  • 1970-01-01
相关资源
最近更新 更多