代码之家  ›  专栏  ›  技术社区  ›  Chad

$(“body”)。在带有Dropzone.js的(“drop”)上

  •  0
  • Chad  · 技术社区  · 7 年前

    问题是,我不知道如何将删除的文件从目标元素“转发”到dropzone进行上传。与生成多个DropZone相比,我更喜欢下面的代码示例,因为在这个场景中,这感觉非常不好,因为在未来,目标drop元素的数量可能是10或15+。

    "drop": function(e) {
    
        e.preventDefault();
    
        myDropzone.upload(e.originalEvent.dataTransfer); // Any way to do something like this?
    
    }
    
    1 回复  |  直到 7 年前
        1
  •  0
  •   shadymoses    7 年前

    通过访问 Dropzone.instances 抓住你想要的实例。如果你只有一个,那就抓住它 Dropzone.instances[0] . 如果有多个元素,则可以找到具有正确 id 在上面。一旦你有了推荐信,你就可以打电话 drop 然后沿着 dataTransfer 从自定义区域的 事件

    滴 事件处理程序可以如下所示:

    function (e) {
      // make sure to avoid default browser handling (opens file in a new tab/window)
      e.preventDefault();
    
      if (e.dataTransfer && e.dataTransfer.files.length) {
        // you could pass along the entire event, but probably best to just pass what you need
        Dropzone.instances[0].drop({ dataTransfer: e.dataTransfer });
      }
    }
    

    Here's a sandbox 以一个实际的例子。它实际上并没有将文件上传到服务器上,但您会看到它们像预期的那样被添加到dropzone中。