Chcę zapisać wybrany plik użytkownika na MongoDB. Jak poprawnie dodać plik do obiektu BSON w celu dodania go do MongoDB? Jeśli moje podejście jest nieprawidłowe, wskaż we właściwym kierunku.Jak zapisać plik w MongoDB?
Poniżej znajduje się kod klienta. Ta funkcja jQuery zbiera tekst (potrzebuję pomocy w części pliku) na każdym polu wejściowym i wysyła je do serwera jako obiekt 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 formularza:
<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>
Serwer kod boczny w 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
Czytałem o GridFS, ale nie mogę znaleźć przykładu, który pokazuje, jak wysłać plik z klienta na serwer, aby zapisać go w GridFS. Masz jakieś źródła? – crzrcn
Nie jestem dobry w Node.js, ale możesz przejrzeć kilka samouczków (https://gist.github.com/1071705 i http://prazjain.wordpress.com/2012/04/18/upload-and -display-file-in-nodejs-application /). W tych samouczkach zapisują pliki do zwykłego systemu plików i powinieneś zamienić 'fs' na' GridFS' code –
Przede wszystkim spróbuj przesłać plik do swojego systemu plików, aby upewnić się, że twój kod działa. A następnie zamień go na 'GridFs' –