【问题标题】:Dropzone hangs on files larger than 1mbDropzone 挂在大于 1mb 的文件上
【发布时间】:2015-06-28 21:14:36
【问题描述】:

我在 Meteor 中使用 Dropzone.js 和 CollectionFS。我把它作为一个包和独立的。每次我这样做时,一切都很好,除非我尝试上传超过 1mb 的文件(看起来至少是大小限制),进度条只是挂起并且永远不会调用“完成”回调。我已经尝试了很多 Dropzone 选项,但似乎没有任何解决方法。这就是我所拥有的:

Javascript:

Template.projectsNew.rendered = ->
   Meteor.dropzone = new Dropzone '#dropzone',
      url: '/'
      maxFilesize: 5
      maxFiles: 50
      maxThumbnailSize: 5
      init: ->
         @on 'complete', (file) ->
            Files.insert file, (error, fileObject) ->
               if error
                  console.log "Error: #{error}"
               else
                  uploadedFileIds = Session.get 'uploadedFileIds'
                  uploadedFileIds.push fileObject._id
                  Session.set 'uploadedFileIds', uploadedFileIds

HTML:

 fieldset
    legend Documents

    #dropzone.dropzone

任何帮助将不胜感激。

【问题讨论】:

    标签: javascript meteor dropzone.js


    【解决方案1】:

    以防万一其他人遇到这个问题...我遇到了同样的问题,并且完全卡住了...经过 4 个多小时的撞墙终于解决了。

    结果是 dropzone 加载并完成了一个发布请求,我猜这不是 collectionFS 或流星处理它的方式......无论如何,我太初学者了,无法理解所有这些。

    长话短说,完全不会在 dropzone 内触发,但您可以在“接受”时捕获文件,这是 dropzone 的选项规范,而不是事件。

    所以我解决了这个问题,让 collectionFS 图像存储发生在接受选项中,然后删除图标,它看起来非常好,而且效果也很好!

    <form action="#" class="dropzone" id="dropzone"></form>
    
    var myDropzone = new Dropzone("#dropzone", {
      accept(file) {
        if (file.status == 'added') {
    
          var newFile = new FS.File(file);
    
          Images.insert(newFile, function (error, fileObj) {
            if (error) {
              ...
            }
              else {
                ...
              }
    
                // clear out dropzone
                myDropzone.removeFile(file);
              }
            });
          }
        }
    });
    

    如果有人在此特定问题上需要额外帮助,请发表评论或与我们联系,我很乐意提供进一步帮助。

    【讨论】:

    • 斯蒂芬如果这行得通,如果/当你在犹他州时,我会认真地带你出去吃午饭。今天下午我会试试看。非常感谢您发布此内容。
    【解决方案2】:

    您应该考虑CollectionFS package。它的功能之一是在将文件上传到任意数量的存储选项(gridFS、S3 等)时将文件分成几部分

    【讨论】:

    • 嗨@Michel。我实际上也在使用 CollectionFS。我只是使用 Dropzone 作为前端,然后与 CollectionFS 接口。
    • 有趣。我使用 DropZone 开始了我的项目,但后来放弃了它并编写了我自己的与 CollectionFS 相关的事件处理程序。它适用于非常大的文件,但是我在将块传递给 CollectionFS 之前进行了自己的分块。为此,我使用FileReader
    • 太酷了。由于 UI 交互,我真的只使用 Dropzone。也许我可以将它与 FileReader 集成。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-02-29
    • 2016-08-01
    • 2014-09-03
    • 2021-01-18
    • 1970-01-01
    • 1970-01-01
    • 2012-04-02
    相关资源
    最近更新 更多