Meteor CollectionFS を使用しています。現在、ファイルのアップロードはクライアントで実行されています。サーバーでファイルのアップロードを実行して、andriod や ios などの他のプラットフォームがファイル アップロードのサービスを使用できるようにしたいと考えています。
現在、私のコードは次のとおりです。
client.html
<input type="file" custom-on-change="uploadFile">
clientController.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);
}
};
});
スキーマ.js
Images = new FS.Collection("images", {
stores: [
new FS.Store.FileSystem("images", {path: '~/uploads'})
]
});
コードは私にとって完璧に機能します。しかし、ご覧のとおり、すべてがクライアント コントローラーで行われます。Meteor のサーバー コントローラでこれを実行するにはどうすればよいですか?
ファイルをサーバーに送信して、そこで画像を処理、挿入、またはアップロードするにはどうすればよいですか?
編集
ご存じのように、Android アプリは base64 でエンコードされた文字列を送信します。では、ここでそれをどのように扱いますか?Meteor Server に画像をアップロードする機能を一元化したいと考えています。