首页 > 其他分享 >Vue3文件拖拽上传

Vue3文件拖拽上传

时间:2022-10-29 11:34:53浏览次数:56  
标签:const preventDefault value drag addEventListener Vue3 active 上传 拖拽


Vue3文件拖拽上传_上传

<template>
<div :class="['drag', { 'drag-active': active }]" ref="drag">
<p class="drag-title">未选择文件/文件夹</p>
<p class="drag-subtile">
支持拖拽到此区域上传,支持选择多个文件/文件夹
<br />
单个文件夹最大支持512GB
</p>
</div>
</template>
<script setup>
import { ref, onMounted, onBeforeUnmount } from 'vue'
const drag = ref(null)
const active = ref(false)
onMounted(() => {
drag.value.addEventListener('drop', handleDrop)
drag.value.addEventListener('dragleave', (e) => {
active.value = false
e.preventDefault()
})
drag.value.addEventListener('dragenter', (e) => {
active.value = true
e.preventDefault()
})
drag.value.addEventListener('dragover', (e) => {
active.value = true
e.preventDefault()
})
})

onBeforeUnmount(() => {
drag.value.removeEventListener('drop', handleDrop)
})

const emit = defineEmits(["file"])
const handleDrop = (e) => {
e.preventDefault()
active.value = false
emit("file", Array.from(e.dataTransfer.files))
}

</script>

<style lang="scss" scoped>
.drag {
height: 220px;
border: 1px dashed #DEDEDE;
border-radius: 4px;
display: flex;
align-items: center;
flex-direction: column;
justify-content: center;

&-active {
border: 1px dashed #2260FF;
}

&-title {
font-size: 14px;
}

&-subtile {
font-size: 12px;
color: #999999;
margin-top: 30px;
text-align: center;
line-height: unset;
}
}
</style>


标签:const,preventDefault,value,drag,addEventListener,Vue3,active,上传,拖拽
From: https://blog.51cto.com/u_15709205/5805845

相关文章

  • 【Vue3】provide和inject 依赖与注入
    provide与inject依赖注入vue3中使用setup语法糖与vue2的provide与inject的区别还是挺大的,这里不讨论vue3的配置项写法。vue2的可以参考学习之前的vue2的provide与inject......
  • iOS开发应用上传AppStore的步骤
    原文:http://blog.csdn.net/ayangcool/article/details/46647693前言:作为一名IOS开发者,把开发出来的App上传到AppStore是必须的。下面就来详细介绍下具体流程。1.打开苹果开......
  • iOS开发应用上传AppStore的步骤
     原文:http://blog.csdn.net/ayangcool/article/details/46647693 前言:作为一名IOS开发者,把开发出来的App上传到AppStore是必须的。下面就来详细介绍下具体流程。1.......
  • h5大文件上传如何做断点续传
    ​ 这里只写后端的代码,基本的思想就是,前端将文件分片,然后每次访问上传接口的时候,向后端传入参数:当前为第几块文件,和分片总数下面直接贴代码吧,一些难懂的我大部分都加上......
  • ajaxFileUpload.js 无刷新上传图片,支持多个参数同时上传,支持 ie6-ie10
    ajaxFileUpload无刷新上传的原理:在页面动态创建form表单和ifram贞,设定form表单提交的目标为ifram贞,将文件域和要post的参数动态写入form表单中,然后提交from......
  • web大文件上传如何做断点续传
    ​ 总结一下大文件分片上传和断点续传的问题。因为文件过大(比如1G以上),必须要考虑上传过程网络中断的情况。http的网络请求中本身就已经具备了分片上传功能,当传输的文件比......
  • python 脚本实现XCode自动打包/上传蒲公英/钉钉机器人通知
    通常我们使用XCode打包要archive然后导出,然后上传到蒲公英,再然后拿到蒲公英的截图去打包群里通知打包完成,既然这些动作都是由一个个步骤完成,那么何不使用python写一个脚......
  • http大文件上传如何做断点续传
    ​ 前言文件上传是一个老生常谈的话题了,在文件相对比较小的情况下,可以直接把文件转化为字节流上传到服务器,但在文件比较大的情况下,用普通的方式进行上传,这可不是一个好......
  • XCode Script脚本实现符号文件上传到bugly
    bugly解析错误信息需要符号文件,而符号文件每次都要手动去上传,有时候遗漏了,archive文件被删除后,想要解析出崩溃信息就很难了,所以,可以通过添加脚本,在archive完成的时候,自动上......
  • 直播网站程序源码,获取本地上传图片的尺寸(宽高)
    直播网站程序源码,获取本地上传图片的尺寸(宽高) <inputid="file"@change="uploadImegs($event,3)"type="file"accept="image/*"/>uploadImegs(e){  let_file......