fileDatas: [{LocalFileId: {}}] 来传文件, 是一个数组

TDOO updateNote
This commit is contained in:
life
2015-01-29 11:44:32 +08:00
parent ff79577605
commit ed37b1178c
3 changed files with 87 additions and 75 deletions

111
node_modules/api.js generated vendored
View File

@@ -356,81 +356,41 @@ var Api = {
IsMarkdown: note.isMarkdown,
Tags: note.Tags,
IsBlog: note.IsBlog,
Files: note.Files,
FileDatas: note.FileDatas
}
log('add note');
// log('add note');
// log(data);
// files处理
var files = note.Files;
var needTransferFiles = [];
var needPostFilesAttr = [];
async.eachSeries(files, function(file, cb) {
// var file = files[i];
var needFile = {
FileId: file.ServerFileId,
LocalFileId: file.FileId,
HasBody: false
}
// console.log(file);
// 要传数据的
if(file.IsDirty) {
fs.exists(file.Path, function(isExists) {
needTransferFiles[file.FileId] = {
file: file.Path,
content_type: 'image/' + file.Type
}
needFile.HasBody = true;
needPostFilesAttr.push(needFile);
return cb();
});
} else {
needPostFilesAttr.push(needFile);
return cb();
}
}, function() {
data.Files = needPostFilesAttr;
var needMultiple = false;
for(var i in needTransferFiles) {
needMultiple = true;
data[i] = needTransferFiles[i];
}
// 最终传递的数据
console.log('end transfer data');
console.log(data);
needle.post(me.getUrl('note/addNote'), data, {multipart: needMultiple}, function(err, resp) {
if(err) {
return callback(false);
}
var ret = resp.body;
log('add note ret');
log(ret);
if(Common.isOk(ret)) {
// 将serverId保存
callback(ret);
} else {
callback(false);
}
});
});
/*
var data = {
foo: 'bar',
cc: [1,2,3,3],
dd: {name: 'life', age: 18},
image: { file: '/Users/life/Desktop/imageplus.png', content_type: 'image/png' }
var needMultiple = false;
for(var i in data.FileDatas) {
needMultiple = true;
break;
}
needle.post('http://localhost/phpinfo.php', data, { multipart: true }, function(err, resp, body) {
// needle will read the file and include it in the form-data as binary
console.log(resp.body);
// 最终传递的数据
console.log('end transfer data');
console.log(data);
needle.post(me.getUrl('note/addNote'), data, {multipart: needMultiple}, function(err, resp) {
if(err) {
return callback(false);
}
var ret = resp.body;
log('add note ret');
log(ret);
if(Common.isOk(ret)) {
// 将serverId保存
callback(ret);
} else {
callback(false);
}
});
*/
});
},
// 更新
updateNote: function(note, callback) {
var me = this;
@@ -441,11 +401,21 @@ var Api = {
title: note.Title,
usn: note.Usn,
isTrash: note.IsTrash,
content: note.Content
content: note.Content,
Files: note.Files,
FileDatas: note.FileDatas
}
log('update note');
log(data);
needle.post(me.getUrl('note/updateNote'), data, {}, function(err, resp) {
console.log('update note :');
console.log(data);
// files处理
var needMultiple = false;
for(var i in data.FileDatas) {
needMultiple = true;
break;
}
needle.post(me.getUrl('note/updateNote'), data, {multipart: needMultiple}, function(err, resp) {
if(err) {
log('err');
log(err);
@@ -494,7 +464,6 @@ var Api = {
log('delete note conflict: setNotDirty');
Note.setNotDirty(note.NoteId);
}
} catch(e) {}
}
});

2
node_modules/file.js generated vendored
View File

@@ -161,7 +161,7 @@ var File = {
},
// 笔记添加/修改后会有LocalFileId <=> FileId映射
updateFileForce(files) {
updateFileForce: function(files) {
if(!files) {
// callback && callback(false);
return;

49
node_modules/note.js generated vendored
View File

@@ -1,5 +1,6 @@
var async = require('async');
var db = require('db');
var fs = require('fs');
var File = require('file');
var Evt = require('evt');
var User = require('user');
@@ -388,6 +389,7 @@ var Note = {
note.InitSync = false;
note.LocalIsNew = false;
// 如果是添加的, 因为不会传内容
if(isAdd) {
delete note['content'];
}
@@ -551,6 +553,43 @@ var Note = {
noteWeb.deleteSync(noteSyncInfo.deletes);
},
// 得到所有文件要传的基本信息和传送的数据
getFilesPostInfo: function(files, callback) {
var needPostFilesAttr = [];
var needTransferFiles = {};
if(!files || files.length == 0) {
return callback(needPostFilesAttr, needTransferFiles);
}
async.eachSeries(files, function(file, cb) {
// var file = files[i];
var needFile = {
FileId: file.ServerFileId,
LocalFileId: file.FileId,
Type: file.Type,
HasBody: false
}
// console.log(file);
// 要传数据的
if(file.IsDirty) {
fs.exists(file.Path, function(isExists) {
needTransferFiles[file.FileId] = {
file: file.Path,
content_type: 'image/' + file.Type // TODO
}
needFile.HasBody = true;
needPostFilesAttr.push(needFile);
return cb();
});
} else {
needPostFilesAttr.push(needFile);
return cb();
}
}, function() {
callback(needPostFilesAttr, needTransferFiles);
});
},
// 获得用户修改的笔记
getDirtyNotes: function(callback) {
var me = this;
@@ -563,12 +602,16 @@ var Note = {
async.eachSeries(notes, function(note, cb) {
me.getNoteFiles(note.NoteId, note.Content, function(files) {
note.Content = me.fixNoteContentForSend(note.Content);
note.Files = files || [];
cb();
// note.Files = files || [];
me.getFilesPostInfo(files, function(attrs, fileDatas) {
note.Files = attrs;
note.FileDatas = fileDatas;
cb();
});
});
}, function() {
callback(notes);
})
});
}
});
},