视图层加 v-on:paste 事件
<div v-on:paste="onPaste">
</div>
方法实现
// 监听粘贴操作
onPaste(event) {
const items = (event.clipboardData || window.clipboardData).items;
let file = null;
if (!items || items.length === 0) {
this.$message.error("当前浏览器不支持本地");
return;
}
// 搜索剪切板items
for (let i = 0; i < items.length; i++) {
if (items[i].type.indexOf("image") !== -1) {
file = items[i].getAsFile();
break;
}
}
if (!file) {
this.$message.error("粘贴内容非图片");
return;
}
const reader = new FileReader();
// 此时file就是我们的剪切板中的图片对象
// 如果需要预览,可以执行下面代码
// reader.onload = event => {
// preview.innerHTML = `<img src="${event.target.result}">`;
// };
reader.readAsDataURL(file);
this.uploadGoodsImage({file}) //此处为图片上传服务器方法
},