vue2 粘贴 拖拽上传文件

129 阅读1分钟

需求

文本框支持粘贴 以及拖拽上传

前置条件

vue2

代码

<template>
  <div>
    <input type="text" @paste="onPasteUpload($event)" @drop="dropFile" />
  </div>
</template>

<script>
export default {
  methods: {
    // 粘贴上传
    onPasteUpload(event) {
      let items = event.clipboardData && event.clipboardData.items;
      let file = null;
      if (items && items.length) {
        for (let key in items) {
          if (items[key].kind == "file") {
            // file就是文件 
            file = items[key].getAsFile();
            // 拿到文件后去处理自己对应的上传逻辑即可
          }
        }
      }
    },
    //拖拽上传
    dropFile(e){
       let file =  e.dataTransfer.files //相同去处理对应逻辑
    },
  },
};
</script>