Jquery 如何在HTML5中读取粘贴事件上的文件

Jquery 如何在HTML5中读取粘贴事件上的文件,jquery,html,google-chrome-extension,Jquery,Html,Google Chrome Extension,在HTML5中,我们知道我们可以使用预定义的API读取文件。到现在为止,我已经试过了 和文件放置方法。它们对我来说很有效 但是我想知道在div上粘贴文件并在粘贴时捕获文件的可能性。 比如说 $('#dummyDIV').bind('paste',function() { // Like var file = files[0] }); 谢谢您只能读取粘贴文件的文件名 如果任何浏览器允许这种情况发生,这将是一个严重的安全漏洞。理论上,剪贴板也可以包含文件,因此您应该能够以与dr

在HTML5中,我们知道我们可以使用预定义的API读取文件。到现在为止,我已经试过了

文件放置方法。它们对我来说很有效

但是我想知道在div上粘贴文件并在粘贴时捕获文件的可能性。 比如说

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

谢谢

您只能读取粘贴文件的文件名


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

理论上,剪贴板也可以包含文件,因此您应该能够以与drop方法相同的方式访问它们。尝试控制台.log()事件对象并在其中导航,以查看该属性是否存在以及访问该属性所需的路径。可能的情况是,此网站在粘贴时读取文件的方法与在拖放时使用的方法完全相同:-但这是通过将联机地址粘贴到文本框中来完成的,我也不确定在dropzone上粘贴一个文件是否有效?只是想知道为什么它会是一个安全漏洞。你能解释一下吗?事故会造成伤害。同意。一个人必须为所犯的错误付出代价。假设我不是一个愚蠢的用户,不会玩弄KeePass文件,它还会导致什么其他安全问题?见鬼。你们都在说不小心把文件放到浏览器上了。文件可以在浏览器上随时拖放,许多应用程序(如facebook)可以处理这些文件进行上传。这个问题是关于粘贴。@one.beat.consumer的,如果这是一个安全问题,浏览器也不应该允许拖放。但它允许拖放,不允许复制/粘贴。这没什么意义,不是吗?您甚至无法读取粘贴文件的文件名。我没有尝试使用jQuery,但是纯javascript。@lukyer没有,在2020年,ctrlv.cz仍然只支持屏幕截图,不支持文件。。。
$('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);
});