我想將用戶選擇的文件保存到MongoDB。如何正確地將文件添加到BSON對象以將其添加到MongoDB?如果我的方法不正確,請指向正確的方向。如何將文件保存到MongoDB?
以下是客戶端代碼。這個jQuery函數在每個輸入字段上收集文本(需要文件部分的幫助)並將其作爲BSON對象發送到服務器。
$('#add').click(function()
{
console.log('Creating JSON object...');
var classCode = $('#classCode').val();
var professor = $('#professor').val();
var description = $('#description').val();
var file = $('#file').val();
var document =
{
'classCode':classCode,
'professor':professor,
'description':description,
'file':file,
'dateUploaded':new Date(),
'rating':0
};
console.log('Adding document.');
socket.emit('addDocument', document);
});
形式的HTML:
<form>
<input type = 'text' placeholder = 'Class code' id = 'classCode'/>
<input type = 'text' placeholder = 'Document description' id = 'description'/>
<input type = 'text' placeholder = 'Professor' id = 'professor'/>
<input type = 'file' id = 'file'/>
<input type = 'submit' id = 'add'/>
</form>
服務器端代碼中的CoffeeScript:
#Uploads a document to the server. documentData is sent via javascript from submit.html
socket.on 'addDocument', (documentData) ->
console.log 'Adding document: ' + documentData
db.collection 'documents', (err, collection) ->
collection.insert documentData, safe:false
return
我一直在閱讀有關GridFS,但我找不到一個示例顯示如何將文件從客戶端發送到服務器,以便將其保存在GridFS中。有任何來源? – crzrcn
我不擅長Node.js,但可以查看一些教程(https://gist.github.com/1071705和http://prazjain.wordpress.com/2012/04/18/upload-and -display文件合的NodeJS應用/)。在本教程中,他們將文件保存到常規文件系統,並且應該用'GridFS'代碼代替'fs' –
首先,嘗試將文件上傳到您的文件系統,以確保您的代碼正常工作。然後用'GridFs'替換它 –