加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

angularjs – Meteor CollectionFS – 在服务器上上传图像

发布时间:2020-12-17 07:14:17 所属栏目:安全 来源:网络整理
导读:我正在使用Meteor CollectionFS.目前我的文件上传是在客户端上执行的.我想在服务器上执行文件上传,以便其他平台如andriod或ios可以使用我的文件上传服务. 目前这是我的代码: client.html input type="file" custom-on-change="uploadFile" clientController
我正在使用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服务器上有一个集中的图像上传功能.

解决方法

您可以将该逻辑放在 Meteor Method中.
然后,您可以决定是否希望该方法仅在服务器上运行,或者在客户端和服务器上运行(延迟补偿).

所以我会将你的控制器更改为:

$scope.uploadFile = function(event){
  Meteor.call("uploadFiles",event.target.files);
};

Schema.js(或可以在服务器或客户端和服务器上运行的任何其他文件 – 阅读有关Meteor文件结构here的更多信息)

Images = new FS.Collection("images",{path: '~/uploads'})
    ]
});

Meteor.methods({
  uploadFiles: function (files) {

    for (var i = 0,ln = files.length; i < ln; i++) {
        files[i].userId = Meteor.userId();

        Images.insert(files[i],fileObj) {
        });
    }

  }
});

该方法还可以返回值,在服务器和客户端上运行.
我还会在Meteor guide上阅读更多有关Meteor Methods的内容.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读