【发布时间】:2016-03-21 07:24:15
【问题描述】:
我正在使用 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);
}
};
});
Schema.js
Images = new FS.Collection("images", {
stores: [
new FS.Store.FileSystem("images", {path: '~/uploads'})
]
});
代码非常适合我。但正如您所见,一切都在客户端控制器中完成。如何在 Meteor 的服务器控制器上执行此操作?
如何将我的文件发送到服务器,以便在那里处理、插入或上传我的图像?
编辑
如您所知,Android 应用将发送 base64 编码字符串。那么我将如何处理呢?我想在 Meteor 服务器上有一个集中的图像上传功能。
【问题讨论】:
-
我不太明白你的问题。您已经将文件发送到服务器。这段代码在科尔多瓦应用程序中不起作用吗?
-
@SerkanDurusoy 此代码非常适合网络。但是正如您所见,所有代码都放在客户端上。如果一个安卓应用想要使用我的图片上传方法怎么办?他当然会发送一个 base64 编码的字符串。那我该如何处理呢?
标签: angularjs meteor image-resizing graphicsmagick collectionfs