有没有人知道如何使用HTML5通过桌面拖放文件实现上传?我找到了以下参考资料:
使用 developer.mozilla.org上的拖放功能(2017-08)选择文件
使用JavaScript拖放文件上传文章声明api已更改,并且指向文件Api的链接已更改(2010-09)
http://www.appelsiini.net/上的html5-drag-and-drop-multiple-file-upload(2017-11返回404)(仍然有效)
但有没有可以在所有平台上运行的解决方案:Firefox,Chrome和Safari?
非常感谢!
对不起,目前还没有可用的跨浏览器解决方案.
当前浏览器实施问题
没有递归文件夹上传 - 事实上,根本没有文件夹上传.虽然这不是一个显示停止,但如果浏览器也不会发送该文件夹中的所有文件,那么允许用户在文件上传输入框中选择文件夹似乎有点愚蠢.
这个浏览器支持文件拖放,但实现很可能是有史以来最糟糕的.为了上传用户删除的文件,我们必须将整个文件读入内存,然后通过Ajax将其发送到我们的服务器.这适用于大约10MB的滴.如果您使用400MB文件尝试相同的操作,请忘记它!
Mozilla开发人员很快 - 他们意识到了之前实现的问题,并创建了一种实现拖放上传的全新方式.FormData对象是一个新的JavaScript对象,它允许Web开发人员将文件上载直接插入到Ajax请求中,而无需先将文件读入内存.我对此非常兴奋,并迅速下载了Firefox 4,这是第二个测试版.在玩了不到5分钟之后,我强烈反对你不要尝试它.由于缺乏对Firebug的支持,我的系统变得非常不稳定和缓慢,并且开发是一个主要的痛苦.
这个浏览器是迄今为止最好的实现!简单明了,我唯一的抱怨是你不能通过拖放上传文件夹及其内容.
由于Safari就像谷歌Chrome一样建立在WebKit之上,所以我预计它也可以正常运行.哇,我错了!我在Safari 4和Safari 5中都尝试过这种方法.在将多个文件拖放到窗口中时,Safari会多次发送第一个文件,而不是发送所有文件.谈论一个主要的错误.为了使它更有趣,如果用户点击放置位置,他们可以使用标准文件选择对话框选择要上载的多个文件 - 并且按预期工作!我等不及Safari来解决这个问题.
说实话,我还没有打算尝试在Internet Explorer中拖放上传.由于缺乏良好的开发工具和不合规的JavaScript引擎,试图支持IE是一种痛苦.由于我无法让所有首选浏览器都能玩得很好,我无法想象Internet Explorer会更接近.
| 归档时间: |
|
| 查看次数: |
3221 次 |
| 最近记录: |