Angular 将剪贴板中的图像粘贴到';行不通

Angular 将剪贴板中的图像粘贴到';行不通,angular,typescript,Angular,Typescript,在将图像复制/粘贴到textaera时,我试图以角度从剪贴板中检索文件元素 使用(粘贴)=“onPaste($event)”绑定,当查看控制台时,我只返回空文件数组: 下面是重现问题的方法。不必关心控制台日志。这只是控制台的一个bug 试试这个: onPaste(e: any ) { const items = (e.clipboardData || e.originalEvent.clipboardData).items; let blob = null; for (

在将图像复制/粘贴到textaera时,我试图以角度从剪贴板中检索文件元素

使用(粘贴)=“onPaste($event)”绑定,当查看控制台时,我只返回空文件数组:


下面是重现问题的方法。

不必关心控制台日志。这只是控制台的一个bug

试试这个:

onPaste(e: any ) {
    const items = (e.clipboardData || e.originalEvent.clipboardData).items;
    let blob = null;
    for (const item of items) {
      if (item.type.indexOf('image') === 0) {
        blob = item.getAsFile();
        console.log(blob); // Prints your files
      }
    }
}
Stackblitz示例:


PS:如果你想要粘贴项目的“名称”,你需要征求用户的输入。因为剪贴板API不支持它

您使用的浏览器是什么?我可以在Chrome上评估StackBlitz的文件列表,但不能在Edge上评估。奇怪的是,我在Firefox(73.0)和Chrome(80.0)上试过,在Windows 10 v1909上试过,当右键单击图像/复制并粘贴到textaera中时,两者都给了我一个空数组/实际上,它没有给出正确的文件名。我可以使用:let files=e.clipboardData.files;console.log(文件[0].name);但是它的名字有image.png,至少你有了一些东西。:)你使用的浏览器版本是什么?我现在不在那台电脑上,所以无法检查。是Windows上最新的Chrome浏览器。您需要该文件的哪些详细信息?名字还是更多?