Javascript 将桌面拖放与上载相结合,实现多选

Javascript 将桌面拖放与上载相结合,实现多选,javascript,file-upload,drag-and-drop,desktop,uploadify,Javascript,File Upload,Drag And Drop,Desktop,Uploadify,我已经为这个问题绞尽脑汁好几天了,所以我想我应该在这里寻求帮助 背景 我们已经建立了一个表单,用户可以上传文件。我们已经为HTML5用户实现了桌面拖放。我们还使用uploadify进行传统的上传。我们使用uploadify的唯一原因是允许旧浏览器的用户选择多个文件。如果没有旧浏览器中的multi-select功能,我们将不会使用任何库进行上传,而只使用文件输入的新“multiple”属性 问题 我认为上传和桌面拖放2种方法,基本上做相同的事情,这是允许用户给你一个数组文件,他们希望上传。完成后,

我已经为这个问题绞尽脑汁好几天了,所以我想我应该在这里寻求帮助

背景
我们已经建立了一个表单,用户可以上传文件。我们已经为HTML5用户实现了桌面拖放。我们还使用uploadify进行传统的上传。我们使用uploadify的唯一原因是允许旧浏览器的用户选择多个文件。如果没有旧浏览器中的multi-select功能,我们将不会使用任何库进行上传,而只使用文件输入的新“multiple”属性

问题
我认为上传和桌面拖放2种方法,基本上做相同的事情,这是允许用户给你一个数组文件,他们希望上传。完成后,我认为这两种方法应该调用相同的函数,传入要上载的文件数组。然而,uploadify的文件集合似乎与拖放的文件集合(e.originalEvent.dataTransfer.files)在结构上有所不同

现在,我有两个选择: 1) 找到一种方法,手动将从桌面拖放收集的文件添加到uploadify que,然后调用upload方法

2) 找到一种从uploadify收集所选(排队)文件的方法,并将其传递给一个单独的ajax方法(拖放文件上的方法也是如此)。我几乎做到了这一点,但正如我所提到的,文件对象是不同的


以前有人处理过这个问题吗?有没有我在这里遗漏的更优雅的解决方案?任何帮助都将不胜感激。如果有人需要,我可以添加代码示例。

您会接受第三方解决方案吗?当然。正如我提到的,我们已经在使用第三方解决方案(uploadify)。我只是在寻找一个可以很好地使用本机解决方案的解决方案,并且在手动将文件添加到队列或允许我们手动从队列中提取文件方面更容易访问的解决方案。这两种方法都比我现在看到的要好,我现在看到的是为桌面拖放和uploadify构建两个完全独立的上传协议。理想情况下,我希望从用户那里获得文件数组,并以相同的方式处理数组,而不管它是通过拖放还是uploadify提供的。这项服务围绕着这样一个理念构建,即没有人必须忍受和重新设计文件上传:),这样您就可以专注于您的主要功能,并将处理文件的工作留给我们。