流星应用程序:从Iphone上传图像而不是计算机的区别?

时间:2015-08-12 19:38:05

标签: ios iphone image mobile meteor

我有一个实时和运行的流星应用程序,我测试了在桌面上上传图像,它们工作正常。但是,当我尝试我的iphone游戏时,它会崩溃并重新加载页面。

如果您要从移动设备上传图片,设置之间是否存在差异?我正在使用Collection FS。请注意,这不是IOS应用程序,而是从移动浏览器上传。

这是相关代码

    HTML

<div class="fileUpload btn btn-success btn-lg  pull-right visible-xs visible-sm">
  <span class=""><i class="fa fa-camera"></i></span>
  <input type="file" class="myFileInput" accept="image/*" />
</div>


CLIENT SIDE 

 'change .myFileInput': function(event, template) {
    var user = Meteor.user();
    var files = event.target.files;
    var fsFile = new FS.File(files[0]);
    fsFile.username = user.username;

    var newImage = Images.insert(fsFile, function(err, response, fileObj) {
      if (err) {
        console.log(err)
      } else {
        console.log('success');
      }
    });

  }




  SERVER SIDE 

  var profileThumbsStore = new FS.Store.S3('thumb', {
    accessKeyId: Meteor.settings.key,
    secretAccessKey: Meteor.settings.secret,
    bucket: Meteor.settings.bucket,
    folder: 'thumb',
    transformWrite: function(fileObj, readStream, writeStream) {
      gm(readStream, fileObj.name()).resize("100", "100").stream().pipe(writeStream);
    }
  });


  var profileStore = new FS.Store.S3('original', {
    accessKeyId: Meteor.settings.key,
    secretAccessKey: Meteor.settings.secret,
    bucket: Meteor.settings.bucket,
    folder: 'original',
    transformWrite: function(fileObj, readStream, writeStream) {
      gm(readStream, fileObj.name()).resize("500", "500").stream().pipe(writeStream);
    }
  });

  Images = new FS.Collection('images', {
    stores: [profileStore, profileThumbsStore],
    filter: {
    // maxSize: 1048576, // in bytes
    allow: {
      contentTypes: ['image/*'],
    },
    onInvalid: function (message) {
      if (Meteor.isClient) {
        sAlert.error(message);
      } else {
        sAlert.success(message);
      }
    }
  }
  });

就像我提到的,它在桌面上运行正常,所以我不明白为什么它不能用于iPhone。

任何帮助将不胜感激。

1 个答案:

答案 0 :(得分:1)

尝试使用FS.Utility - 我在移动设备和浏览器中使用它,它就像一个冠军!

'change .myFileInput': function(event, template) {
  var user = Meteor.user();
  FS.Utility.eachFile(ev, function(file){
    file.username = user.username;
    var newImage = Images.insert(file, function(err, response, fileObj) {
      if (err) {
        console.log(err)
      } else {
        console.log('success');
      }
    });
  }
}