Я пытаюсь получить изображение из буфера обмена в javascript после этого сообщения: https://stackoverflow.com/a/6338207/6188783
document.onpaste = function (event) {
console.info("paste triggered!");
console.info("text: " + event.clipboardData.getData("text")); // shows text if it was pasted
console.info("image: " + event.clipboardData.getData("image")); // always returns empty string p.s. I've also tried image/bmp and other formats
var items = (event.clipboardData || event.originalEvent.clipboardData).items;
console.info(JSON.stringify(items)); // will give you the mime types
for (index in items) {
var item = items[index];
if (item.kind === 'file') {
var blob = item.getAsFile();
var reader = new FileReader();
reader.onload = function(event){
console.info(event.target.result)}; // data url!
reader.readAsDataURL(blob);
}
}
}
Проблема в том, что clipboardData.items и clipboardData.files всегда пусты для файлов. Когда я вставляю текст, его можно найти в массиве items. Некоторые ребята из комментариев говорят, что этот ответ не работает для новых браузеров, но я не смог найти, как это можно сделать сейчас. Пожалуйста помоги!
Заранее спасибо!
ОБНОВИТЬ
Я понял, что изображение не обрабатывается, когда оно копируется из папки. Если я копирую изображение, т.е. рисую, оно помещается в массив элементов. Как тогда я могу обработать файл изображения, скопированный из проводника Windows?
Я знаю, что он старый и не является ответом на вопрос, но это может помочь с использованием drag'n'drop, поэтому



![Безумие обратных вызовов в javascript [JS]](https://i.imgur.com/WsjO6zJb.png)


Я делаю нечто подобное и пробовал, что произошло, когда я копировал файл со своего рабочего стола. Вроде не узнают. Я предполагаю, что копирование файлов и их вставка не предназначены и не поддерживаются. Единственный способ прямо сейчас - либо использовать форму ввода, где вы можете выбрать файл, либо перетащить его. Вы даже можете перетаскивать каталоги. Мы просто можем надеяться, что вставка файлов в какой-то момент будет добавлена как функция.