用于 Internet Explorer 的拖放文件上传库

Posted

技术标签:

【中文标题】用于 Internet Explorer 的拖放文件上传库【英文标题】:Drag and drop file upload library for Internet Explorer 【发布时间】:2012-04-27 18:22:21 【问题描述】:

我发现了一个很棒的库,名为 JQuery File Upload,用于在现代浏览器中拖放文件上传。不幸的是,拖放在 Internet Explorer 中不起作用。

在IE中拖放文件上传是项目的要求,所以我想针对这种特定情况找到解决方案。我的想法是最终得到两个版本的上传页面,一个用于 IE,另一个用于世界其他地方。

有没有人知道在 IE 中进行此类上传的好 Activex 库,不需要任何安装?

【问题讨论】:

【参考方案1】:

我认为最好的方法是使用新的 html5 Drag and Drop API 和新的 File API。

【讨论】:

我相信 TO 想要一个针对旧版本 IE 的解决方案,不支持 HTML5 拖放 API。 好的!我认为 FileDrop 是您所需要的 --> link FileDrop 显然可以通过 iframe 技巧通过 Drag'n Drop 和 IE6+ 上传文件。我必须检查一下,但它看起来很有希望。谢谢!【参考方案2】:

你可以试试dropZone,支持IE 10+

【讨论】:

【参考方案3】:

FiledropJS 2,是一个拖放文件上传库,它有一个 <Iframe> based fallback,也可以在旧版 IE 中工作。该页面中有一个演示。看起来很有希望,看看吧。

【讨论】:

【参考方案4】:

我编写了一个 javascript 模块来执行通用的拖放事件,包括:

文件删除, 在浏览器窗口中拖放, 在两个不同的浏览器窗口之间拖放, 从浏览器窗口拖放到外部应用程序,然后 从外部应用程序拖放到浏览器窗口

它抽象了一堆关于 html5 拖放 api 的奇怪的东西,否则这些东西会浪费你的时间。这是一个示例用法:

dd.drag(myDomNode, 
    dragImage: true, // default drag image
    start: function(setData, e) 
        setData('myCustomData', JSON.stringify(a:1, b:"NOT THE BEES")) // camel case types are allowed!*
    
)
dd.drop(myDropzone, 
    drop: function(data, pointer, e) 
        myDropzone.innerHTML = data.myCustomData
    
)

它也可以在 IE 中使用(带有常见的 IE 警告)。在此处查看完整文档:https://github.com/fresheneesz/drip-drop

【讨论】:

以上是关于用于 Internet Explorer 的拖放文件上传库的主要内容,如果未能解决你的问题,请参考以下文章

Internet Explorer 中的 HTML5 拖放问题(无法访问数据传输属性)

Internet Explorer 9 拖放 (DnD)

在 Internet Explorer 9 中进行 Dart HTML5 拖放

WPF中的拖放文件不起作用

WPF 中的拖放不适用于 DataFormats.FileDrop

iOS 中的拖放功能