如何在HTML5中读取粘贴事件中的文件 [英] How to read a file on paste event in HTML5

查看:96
本文介绍了如何在HTML5中读取粘贴事件中的文件的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

在HTML5中,我们知道我们可以使用预定义的API读取文件。截至目前,我已经试过

< input type =file> File Drop 方法。他们为我工作得很好。

但我想知道在div上粘贴文件并在粘贴文件上捕获文件的可能性。
举例

  $('#dummyDIV')。bind('paste',function()
{
// Like var file = files [0]
});

谢谢

解决方案您只能读取粘贴文件的文件名。



http://jsfiddle.net/vdNFR/

  $('body')。bind('paste',function(a,b,c){
console.log(a.originalEvent.clipboardData);
console.log(a.originalEvent.clipboardData.getData('File'));
console.log(a.originalEvent.clipboardData.getData( 'Text'));
if(a.originalEvent.clipboardData.files [0])console.log(a.originalEvent.clipboardData.files [0] .getAsFile());
if(a .originalEvent.clipboardData.items [0])console.log(a.originalEvent.clipboardData.items [0] .getAsFile());
console.log(a,b,c);
} );

如果任何浏览器允许这种情况发生,这将是一个主要的安全漏洞。


In HTML5 we know that we can read files using predefined API. As of now I have tried

<input type="file"> and the File Drop method. They have worked fine for me.

But I want to know the possibility of pasting a file on a div and capturing the file on paste. For Example

 $('#dummyDIV').bind('paste',function()
 {
      // Like var file = files[0]
 });

Thanks

解决方案

You can only read the file name of pasted file.

http://jsfiddle.net/vdNFR/

$('body').bind('paste', function(a, b, c) {
    console.log(a.originalEvent.clipboardData);
    console.log(a.originalEvent.clipboardData.getData('File'));
    console.log(a.originalEvent.clipboardData.getData('Text'));
    if (a.originalEvent.clipboardData.files[0]) console.log(a.originalEvent.clipboardData.files[0].getAsFile());
    if (a.originalEvent.clipboardData.items[0]) console.log(a.originalEvent.clipboardData.items[0].getAsFile());
    console.log(a, b, c);
});

It would be a major security hole if any browser would allow this situation to happen.

这篇关于如何在HTML5中读取粘贴事件中的文件的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆