我在任何地方找到的答案都没有奏效。我试图扩展“开发Backbone.js应用程序”中的例子来上传文件。尽管表单具有enctype =“multipart/form-data”,但request.files始终未定义。backbonejs节点文件上传
形式HTML是:
<form id="addBook" action="..." enctype="multipart/form-data">
<div>
<label for="coverImage">CoverImage: </label><input id="coverImage" name="coverImage" type="file" />
<label for="title">Title: </label><input id="title" type="text" />
<label for="author">Author: </label><input id="author" type="text" />
<label for="releaseDate">Release date: </label><input id="releaseDate" type="text" />
<label for="keywords">Keywords: </label><input id="keywords" type="text" />
<button id="add">Add</button>
</div>
</form>
,节省了新的记录是
addBook: function(e) {
e.preventDefault();
var formData = {};
var reader = new FileReader();
$('#addBook div').children('input').each(function(i, el) {
if($(el).val() != '')
{
if(el.id === 'keywords') {
formData[ el.id ] = [];
_.each($(el).val().split(' '), function(keyword) {
formData[ el.id ].push({ 'keyword': keyword });
});
} else if(el.id === 'releaseDate') {
formData[ el.id ] = $('#releaseDate').datepicker('getDate').getTime();
} else {
formData[ el.id ] = $(el).val();
}
}
});
console.log(formData);
this.collection.create(formData);
}
节点被称为骨干。
//Insert a new book
app.post('/api/books', function(request, response) {
console.log(request.body);
console.log(request.files);
});
发送到节点的coverimage的值是正确的,我从来没有在request.files中得到任何东西。我有一个很酷的拖放,我想使用,但直到我得到这个工作,我卡住了。
我试过JQuery文件上传,这让我无处可去。
如果我有头发,我现在就把它拉出来。
http://estebanpastorino.com/2013/09/27/simple-file-uploads-with-backbone-dot-js/ – Joe