【问题标题】:Meteor File Uploads流星文件上传
【发布时间】:2012-08-01 04:13:02
【问题描述】:

我看到以前在这里有人问过这个问题,但是自从Meteor.http 之后就没有任何可用的了。我仍然掌握 Meteor 的概念,文件上传完全让我望而却步。

这是我的问题:
那么,在我认为正确的方法中,
Meteor.http.call("POST", url, [options], [asyncCallback])
你为 url 放了什么?有了流星中的客户端/服务器javascript关系,它似乎并没有真正使用那么多的url。

如果有人有一个在流星中上传文件的基本示例,那将是非常棒

【问题讨论】:

    标签: file-upload meteor


    【解决方案1】:

    由于流星默认包含 JQuery,因此您可以使用 Jquery 插件,我想,类似:https://github.com/blueimp/jQuery-File-Upload/wiki/Options 可以为您解决问题,并且支持 GET 和 PUT。

    否则,让它工作起来会很痛苦,但并非不可能,因为您可以在流星中访问 PUT。

    如果您更喜欢更纯粹的 JS 解决方案,也许您可​​以查看:http://igstan.ro/posts/2009-01-11-ajax-file-upload-with-pure-javascript.html

    并适应它。

    没有现成的文件上传支持,所以分享你的想法,我会很感兴趣的!

    【讨论】:

    • jquery 在前端,你仍然需要一些东西(在流星中)来处理 XHR 下载流
    【解决方案2】:

    看看 filepicker.io。他们处理上传,将其存储到您的 S3 中,然后将您可以转储到数据库中的 URL 返回给您。

    1. 将文件选择器脚本放入您的客户端文件夹。

      wget https://api.filepicker.io/v0/filepicker.js
      
    2. 插入文件选择器输入标签

      <input type="filepicker" id="attachment">
      
    3. 在启动时,初始化它:

      Meteor.startup( function() {
          filepicker.setKey("YOUR FILEPICKER API KEY");
          filepicker.constructWidget(document.getElementById('attachment'));
      });
      
    4. 附加事件处理程序

      Template.templateNameHere.events({
          'change #attachment': function(evt){
              console.log(evt.files);
          }
      });
      

    (我已在How would one handle a file upload with Meteor? 上发帖抱歉。我是新来的。将相同的答案复制两次是否符合规定?任何更了解的人都可以随时编辑。)

    【讨论】:

    【解决方案3】:

    很好玩了一下流星。使 collectionFS 混合了流星和 gridFS(可以兼容)。 在这里测试它:http://collectionfs.meteor.com/ 它支持退出大文件、多个文件、用户等。我测试了 50Mb 似乎还可以,如果连接丢失或浏览器死机,用户可以恢复上传。 甚至应该可以让多个用户上传到完全相同的文件 - 还没有退出找到它的用例,但这是可能的。 帐户、发布等与集合一样 - 测试处于自动发布模式,但只有元数据可用 - 数据块通过 blob 在后台提供。

    我会尝试在 github 上获取它,

    【讨论】:

      【解决方案4】:

      或者(如果你不想使用像文件选择器这样的第三方解决方案)你可以使用meteor router 包。

      这会在服务器端处理 HTTP 请求。

      【讨论】:

        【解决方案5】:

        查看如何使用服务器上的 Meteor.Method 和客户端上的 FileReader 的 api 来完成此操作

        https://gist.github.com/dariocravero/3922137

        经过多次搜索,在我看来,这是处理文件上传最简单(目前也是流星风格的方式),无需额外依赖。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2015-09-14
          • 1970-01-01
          • 2015-10-15
          • 2017-02-26
          • 1970-01-01
          • 2016-03-21
          • 2013-11-26
          相关资源
          最近更新 更多