文件拖拽上传时怎么阻止浏览器默认打开文件? 广云 提问于 2026-03-09 16:40:20 阅读 20 交互 我在做文件拖拽上传功能,但每次把图片拖进页面,浏览器就直接在新标签页打开了那张图,根本没法上传。我试过给容器加了 preventDefault(),但好像没生效。 这是我的 HTML 结构: <div id="dropzone" style="width: 300px; height: 200px; border: 2px dashed #ccc;"> 拖拽文件到这里 </div> JS 里监听了 dragover 和 drop 事件,但还是会被浏览器默认行为干扰,到底该怎么正确阻止啊? 我来解答 赞 6 收藏 分享 生成中... 手机扫码查看 复制链接 生成海报 反馈 发表解答 您需要先 登录/注册 才能发表解答 1 条解答 Top丶树人 Lv1 你漏了dragenter事件也要阻止默认行为。试试这样: const dropzone = document.getElementById('dropzone'); ['dragenter', 'dragover', 'drop'].forEach(eventName => { dropzone.addEventListener(eventName, (e) => { e.preventDefault(); e.stopPropagation(); }); }); dropzone.addEventListener('drop', (e) => { // 这里处理上传逻辑 console.log(e.dataTransfer.files); }); 应该是这三个事件都要阻止默认行为才管用,尤其是dragenter经常被漏掉。 回复 点赞 1 2026-03-09 17:01 加载更多 相关推荐 2 回答 370 浏览 拖拽上传时文件被多次提交怎么办? 在做文件拖拽上传功能时,发现每次拖拽文件到区域后,文件会被多次提交到后端,控制台显示重复的POST请求,但手动点击上传按钮没问题。 尝试过在dragover事件里用了e.preventDefault(... 斐然 Dev 交互 2026-01-30 00:58:31 1 回答 15 浏览 Arco Upload上传后怎么拿到文件的临时路径? 我在用 Arco Design 的 Upload 组件做图片上传预览,想在用户选完文件后立刻显示缩略图。但文档里说 on-change 回调返回的是 file 对象,我试了 file.url 和 fi... 紫萱 组件 2026-03-11 13:28:22 2 回答 17 浏览 如何实现文件上传时的百分比加载状态? 我在用 XMLHttpRequest 上传文件,想实时显示上传进度的百分比,但不确定怎么监听进度事件。 试过在 onprogress 里计算 (loaded / total) * 100,但有时候 t... Dev · 自娴 交互 2026-03-11 07:17:26 1 回答 18 浏览 右键菜单怎么阻止默认浏览器菜单弹出? 我在做一个自定义右键菜单的功能,但每次右键点击时,浏览器自带的菜单还是会弹出来,盖住我自己的菜单。我试过用 preventDefault(),但好像没生效,是我哪里写错了吗? 这是我的 HTML 结构... 程序员玉研 交互 2026-03-08 12:14:27 1 回答 18 浏览 如何实现文件上传时的百分比进度条? 我在做文件上传功能,想显示一个实时更新的百分比进度条,但不知道怎么拿到上传的进度数据。 用的是 axios 发请求,试过加 onUploadProgress 回调,但算出来的百分比总是不对,有时候超过... UP主~培培 交互 2026-03-03 12:39:20 1 回答 19 浏览 Upload组件上传大文件时总是失败,怎么解决? 我用的是 Ant Design 的 Upload 组件,上传小于 10MB 的文件没问题,但一传 50MB 以上的视频就直接报错,控制台显示 net::ERR_CONNECTION_RESET。后端同... 公孙彬丽 交互 2026-03-02 23:12:21 2 回答 24 浏览 Ant Design Upload上传后怎么拿到文件的base64编码? 我用 Ant Design 的 Upload 组件上传图片,想在上传前把文件转成 base64 用于预览,但不知道怎么在 onChange 里获取到 base64。试过用 FileReader,但总是... W″文仙 组件 2026-03-02 21:17:20 2 回答 18 浏览 Upload组件上传后文件列表不更新怎么办? 我用的是Element Plus的Upload组件,手动上传成功后,界面上的文件列表还是空的,明明已经返回了正确的URL。试过给fileList赋新值,但没反应,是不是哪里漏了? 这是我的上传方法: ... Air-美美 交互 2026-03-01 11:13:20 1 回答 27 浏览 文件上传时怎么监听进度条变化? 我用 axios 上传文件,想加个进度条,但 onUploadProgress 回调好像没触发,是我写错了吗? 试过这样写: axios.post('/upload', file,... 志利酱~ 交互 2026-02-27 21:39:21 2 回答 21 浏览 文件上传时怎么监听进度条变化? 我用 axios 上传文件,想加个进度条,但 onUploadProgress 回调好像没触发,控制台也没报错。 试过这样写: axios.post('/upload', file... 萌新.雨路 交互 2026-02-27 19:45:17
应该是这三个事件都要阻止默认行为才管用,尤其是dragenter经常被漏掉。