需要做一个复制粘贴功能,上传后台对象为file格式,现在问题是每次获取到的剪贴板上的文件对象都不是最新的,都是第一次复制的文件
document.addEventListener('paste', function (event) {
var items = (event.clipboardData || window.clipboardData).items;
console.log(items);
var file = null;
if (items && items.length) {
// 搜索剪切板items
for (var i = 0; i < items.length; i++) {
console.log(items[i].getAsFile());
if (items[i].type.indexOf('image') !== -1) {
file = items[i].getAsFile();
break;
}
}
} else {
log.innerHTML = '<span style="color:red;">当前浏览器不支持</span>';
return;
}
if (!file) {
log.innerHTML = '<span style="color:red;">粘贴内容非图片</span>';
return;
}else{
log.innerHTML = '<span style="color:red;"></span>';
}
// 此时file就是我们的剪切板中的图片对象
// 如果需要预览,可以执行下面代码
var reader = new FileReader()
reader.onload = function(event) {
preview.innerHTML = '<img src="' + event.target.result + '" class="upload-image">';
//let blob = dataURLtoFile(event.target.result,'image/jpeg');
that.$nextTick(()=> {
that.beforeUpload(file); // 上传操作,参数为file对象
})
}
console.log(file);
reader.readAsDataURL(file);
});