
本文详细介绍了如何利用html drag and drop api,在不实际上传文件的情况下,获取用户拖放到网页区域的文件或文件夹名称。这对于仅需文件元信息(如名称)而无需传输文件内容的内部业务应用尤其有用,避免了不必要的上传操作,同时提供了交互式用户体验。
需要注意的是,出于浏览器安全限制,通过 dataTransfer.files 只能获取到文件的基本名称 (file.name),而无法获取到其完整的本地系统路径(例如Windows的UNC路径或macOS的/Volumes/foo/foo1路径)。如果用户拖放的是一个文件夹,e.dataTransfer.files 将包含该文件夹内的所有文件,而不是文件夹本身作为一个单独的文件对象。
<h1>Vanilla JS Drag & Drop upload zone for input file element</h1>
<div class="dropzone" id="dropzone">
@@##@@
Drop files or Click here to select files to upload.
<input type="file" name="files" class="dropzone-input" multiple />
</div>此HTML结构包含一个div作为拖放区域,一个图标和一些提示文本。input type="file"元素被隐藏,但通过点击拖放区域可以触发其选择文件功能(尽管本文主要关注拖放)。
@import url('https://fonts.googleapis.com/css2?family=Roboto:wght@400;500;700&display=swap');
body {
font-family: "Roboto";
}
h1 {
text-align: center;
margin-bottom: 2rem;
padding-bottom: 1rem;
border-bottom: 2px solid lighten(#6583fe, 15%);
font-size: 1.5rem;
font-weight: 400;
}
.dropzone {
border: 0.2rem dashed #6583fe;
padding: 2rem;
border-radius: 0.25rem;
background-color: #fff;
text-align: center;
font-size: 1.5rem;
transition: 0.25s background-color ease-in-out;
cursor: pointer;
&-dragging,
&:hover {
background-color: lighten(#6583fe, 28%); /* 拖动或悬停时的背景色变化 */
}
&-icon {
max-width: 75px;
display: block;
margin: 0 auto 1.5rem;
}
&-input {
display: none; /* 隐藏实际的文件输入框 */
}
}上述CSS代码定义了拖放区域的边框、背景、文本样式,并实现了在文件拖动到区域上方时(通过.dropzone-dragging类)或鼠标悬停时改变背景色的交互效果。
MarketingBlocks AI
AI营销助理,快速创建所有的营销物料。
27
查看详情
var dropzone = document.getElementById('dropzone');
var dropzone_input = dropzone.querySelector('.dropzone-input');
// var multiple = dropzone_input.getAttribute('multiple') ? true : false; // 此行在本场景中非必需
// 阻止浏览器默认行为:防止文件在新标签页中打开
['drag', 'dragstart', 'dragend', 'dragover', 'dragenter', 'dragle*e', 'drop'].forEach(function(event) {
dropzone.addEventListener(event, function(e) {
e.preventDefault();
e.stopPropagation();
});
});
// 拖动文件进入区域时,添加视觉反馈类
dropzone.addEventListener('dragover', function(e) {
this.classList.add('dropzone-dragging');
}, false);
// 拖动文件离开区域时,移除视觉反馈类
dropzone.addEventListener('dragle*e', function(e) {
this.classList.remove('dropzone-dragging');
}, false);
// 文件放置事件处理
dropzone.addEventListener('drop', function(e) {
this.classList.remove('dropzone-dragging'); // 移除拖动时的样式
var files = e.dataTransfer.files; // 获取拖放的文件列表
// 遍历文件列表,获取每个文件的名称
Array.prototype.forEach.call(files, file => {
// 在这里处理文件名称,例如显示在UI中或发送到后端
alert(file.name); // 示例:使用alert显示文件名称
// 实际应用中,建议将名称展示在页面元素中,而不是使用alert
// console.log("文件名:", file.name);
});
}, false);
// 点击拖放区域时,触发隐藏的文件输入框点击事件
dropzone.addEventListener('click', function(e) {
dropzone_input.click();
});代码解析:
通过上述方法,您可以有效地利用HTML Drag and Drop API在Web应用中实现无需上传即可获取文件/文件夹名称的功能,为用户提供更直观、高效的交互体验,特别适用于那些对文件路径信息敏感但不需要实际文件内容的内部应用场景。

以上就是使用HTML拖放API获取文件/文件夹名称(无需上传)的详细内容,更多请关注其它相关文章!
# 幸福村网站建设游戏大全
# 鼠标
# 遍历
# 输入框
# 背景色
# 文件列表
# 移除
# 试玩推广的网站叫什么
# 网站建设深圳优惠
# 的是
# 长清引流营销推广
# 学习网站建设详细方案
# sem营销推广方案案例外推
# 四川专业网站建设口碑
# 江门seo新算法
# 朝阳区阀门网站建设方案
# 南阳网优化seo公司
# css
# 上传
# 拖动
# 拖放
# m
# mac
# 后端
# ssl
# 浏览器
# windows
# go
# ajax
# js
# html
# java
# javascript
相关栏目:
【
Google疑问12 】
【
Facebook疑问10 】
【
优化推广96088 】
【
技术知识133117 】
【
IDC资讯59369 】
【
网络运营7196 】
【
IT资讯61894 】
相关推荐:
铁路12306座位怎么选_12306官方选座操作方法
《360浏览器》自动保存账号密码设置方法
MySQL多重JOIN技巧:高效关联同一表获取多角色信息
12306APP选座怎么选充电位置_12306APP带充电插座座位选择方法与技巧
diskgenius分区工具如何设置Bios启动项
抄漫画官网防走失地址_抄漫画最新漫画完整版阅读入口
芒果TV官网登录入口 芒果TV官方网站登录入口
从HTML表单获取逗号分隔值并转换为NumPy数组进行预测
漫蛙漫画直连入口 _ manwa官方备用入口实时检测
快递物流路径揭秘
汽水音乐网页版登录 汽水音乐网页端官方入口
Symfony路由参数转换器:实体存在性验证与错误处理策略
《东方财富》条件单关闭方法
OTT月报 | 2025年9月智能电视大数据报告
多多买菜门店端app订单查看方法
悟空浏览器如何恢复关闭的标签页 悟空浏览器撤销关闭网页快捷键设置
《KARDS》冬季扩展包“国土阵线”上线!全新“协力”机制改变战场格局
解决jQuery多计算器输入字段冲突的教程
嘴唇干裂起皮怎么办 唇部护理与预防干裂的方法【详解】
三星M34录音变声问题_Samsung M34麦克风调整
mysql通配符能用于日志查询吗_mysql通配符在系统日志查询中的实际使用方法
《气泡星球》兑换码礼包大全
《虎扑》取消评分记录方法
使用逻辑应用(Logic Apps)自动处理邮件附件中的XML到Excel
win11如何开启单声道音频 Win11为听障用户合并左右声道【辅助】
sublime text 4如何安装_最新版sublime下载与汉化教程
j*a中赋值运算符是什么?
电脑没有声音了怎么办 电脑声音问题的全面排查与修复指南【详解】
Go Goroutine调度与并发执行深度解析
大众点评了却看不到是怎么回事
店铺如何做视频号推广?做视频号推广有用吗?
包子漫画官网链接官方地址 包子漫画在线观看官网首页入口
向日葵客户端怎么进行语音通话_向日葵客户端语音通话功能使用方法
易车网官网直达入口 易车网在线登录入口
mysql镜像配置如何设置用户权限组_mysql镜像配置用户组与权限分级管理方法
Flexbox布局:实现粘性导航与底部页脚的完美结合
网站体验不好=浪费钱:如何提升-用户体验效果差
Sublime怎么自动添加CSS前缀_Sublime安装Autoprefixer插件
如何通过settings.json个性化您的VS Code体验
如何在mysql中使用索引提示_mysql索引提示优化方法
ExcelSCAN与LAMBDA如何创建自定义移动平均函数_SCAN实现任意窗口期移动平均计算
解决CSS布局中意外顶部空白问题的教程
mysql中外键约束如何使用_mysql FOREIGN KEY操作
Windows Audio服务启动失败怎么办_电脑没声音的终极服务修复法【修复】
空腹吃苹果好吗 苹果空腹摄入指南
c++20的指定初始化(Designated Initializers)怎么用_c++ C风格结构体初始化
Lar*el Eloquent中通过Join查询关联数据表:解决多行子查询问题
夸克浏览器资源嗅探怎么用 夸克浏览器网页资源下载技巧【教程】
中大网校app做题记录清除方法
电脑的“恢复环境(WinRE)”找不到怎么办_Windows系统恢复环境重建【高级修复】
2025-11-15
运城市盐湖区信雨科技有限公司是一家深耕海外推广领域十年的专业服务商,作为谷歌推广与Facebook广告全球合作伙伴,聚焦外贸企业出海痛点,以数字化营销为核心,提供一站式海外营销解决方案。公司凭借十年行业沉淀与平台官方资源加持,打破传统外贸获客壁垒,助力企业高效开拓全球市场,成为中小企业出海的可靠合作伙伴。