我在任何地方找到的答案都沒有奏效。我試圖擴展「開發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