<div id="preview" class="click-to-upload" v-on:paste="handlePaste">
<span style="color:#999">将图片按Ctrl+V 粘贴至此处</span>
</div>
// 监听粘贴操作
handlePaste (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;
}
// 此时file就是我们的剪切板中的图片对象
this.addFile(file)//预览
console.log("黏贴", file)
},
addFile (file) {
if (file.type.indexOf('image') >= 0) {
var reader = new FileReader()
var image = new Image()
var _this = this
reader.readAsDataURL(file)
reader.onload = function () {
file.src = this.result
image.onload = function () {
var width = image.width
var height = image.height
file.width = width
file.height = height
_this.imgList.push({ file })
}
image.src = file.src
//_this.$emit('base', file.src)
let fileName = _this.guid()
_this.fileSelect(file, _this.ossData.credentials, fileName)//上传到服务器
}
}
},