我正在使用 Meteor CollectionFS。目前我的文件上传是在客户端上执行的。我想在服务器上执行文件上传,以便其他平台(如 andriod 或 ios)可以使用我的文件上传服务。
目前这里是我的代码:
客户端.html
<input type="file" custom-on-change="uploadFile">
客户端控制器.js
app.controller('clientController', function ($scope, $meteor, $filter) {
$scope.uploadFile = function(event){
var files = event.target.files;
for (var i = 0, ln = files.length; i < ln; i++) {
files[i].userId = Meteor.userId();
Images.insert(files[i], function (err, fileObj) {
});
}
};
});
app.directive('customOnChange', function() {
return {
restrict: 'A',
link: function (scope, element, attrs) {
var onChangeHandler = scope.$eval(attrs.customOnChange);
element.bind('change', onChangeHandler);
}
};
});
Schema.js
Images = new FS.Collection("images", {
stores: [
new FS.Store.FileSystem("images", {path: '~/uploads'})
]
});
该代码非常适合我。但正如您所见,一切都在客户端控制器中完成。如何在 Meteor 的服务器控制器上执行此操作?
如何将我的文件发送到服务器,以便在那里处理、插入或上传我的图像?
编辑
如您所知,Android 应用程序将发送一个 base64 编码的字符串。那么我将如何处理呢?我想在 Meteor Server 上有一个集中的图像上传功能。