2017-02-16 62 views
1

我正在用Cordova構建移動應用程序。我使用PouchDB進行本地存儲,因此該應用程序無需互聯網即可運行。 PouchDB與CouchDB服務器同步,以便您可以訪問每個數據。將文件上傳到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

我注意到一個錯誤在控制檯中大約有不是的內容類型。

有人能幫助我嗎?

+0

添加** exact **錯誤信息將會更容易幫助您;) – Phonolog

+0

錯誤:「附件文件(id)缺失content_type – thomagron

回答

1

我認爲你沒有設置content_type你的附件的權利。嘗試改變typecontent_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

+1

啊我明白了! , 謝謝 – thomagron