
本文详细介绍了如何利用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 】
相关推荐:
《兴业银行》注册登录方法
《360浏览器》设置摄像头权限方法
《一起考教师》账号注销方法
Mac hosts文件在哪里_Mac修改hosts文件详细教程
猫眼电影app如何参与官方的抽奖活动_猫眼电影官方抽奖参与方法
菜鸟裹裹怎样获得取件码_菜鸟裹裹获得取件码步骤
TikTok视频播放中断怎么办 TikTok播放异常修复方法
嘴唇干裂起皮怎么办 唇部护理与预防干裂的方法【详解】
FotoBalloon图片左右镜像教程
Vue 3中独立响应式实例的创建与应用
C++如何实现矩阵乘法_C++二维数组矩阵运算代码示例
漫蛙官网(首页入口)_漫蛙漫画稳定访问教程分享
发博客与长微博技巧
composer 提示 "requires ext-soap" 缺少 SOAP 扩展怎么办?
win11如何开启单声道音频 Win11为听障用户合并左右声道【辅助】
Golang如何测试结构体方法_Golang reflect方法测试与调用技巧
vivo云服务一直提示空间不足怎么办 怎么办vivo云服务老是提示空间不足
c++如何掌握指针的核心用法_c++指针入门到精通指南
Excel如何快速合并单元格内容_Excel文本合并与函数操作技巧
Word 2003字体大小设置方法
哔哩哔哩在线观看入口 B站官网免费进入
Flash AS3.0简易相册制作
iPhone 15 Pro如何查看存储空间占用_iPhone 15 Pro存储空间查看教程
什么是Satis,如何用它搭建一个私有的composer仓库?
Lar*el Socialite单设备登录策略:实现用户唯一会话管理
Python定时发送QQ消息
Highcharts雷达图轴线交点数值标注指南
Excel宏怎么删除_Excel中删除宏的详细操作流程
Dash应用中自定义HTML页面标题与网站图标(F*icon)的实用指南
天堂漫画网页版在线阅读 天堂漫画手机版入口
win11如何诊断DirectX问题 Win11运行dxdiag工具排查显卡故障【排错】
海棠书屋官方在线书籍入口 海棠书屋文学作品浏览官网链接
word文档行距怎么调?word文档调行距的操作步骤
《kimi智能助手》制作ppt教程
解决异步Python机器人中同步操作的阻塞问题
使用jQuery精确检测除指定元素外任意位置的点击事件
C++ virtual析构函数作用_C++基类虚析构函数防止内存泄漏
163邮箱网页版入口 163邮箱在线使用
Animex动漫社社登录官网 Animex动漫社资源社入口直达
Lar*el Eloquent中通过Join查询关联数据表:解决多行子查询问题
《原神》月之一版本新增书籍一览
PySimpleGUI中实现键盘按键与按钮事件绑定教程
解决Flex容器横向滚动内容截断与偏移问题
C++怎么实现一个红黑树_C++高级数据结构与平衡二叉搜索树
macosmonterey系统外接显示器驱动怎么安装_macosmonterey外接显示器驱动与分辨率调整
斯宾塞称XGP云游戏“蒸蒸日上”:正在构建一个游戏从未如此唾手可得的未来
win11自带录屏文件保存在哪里 Win11 Game Bar录制视频默认路径【分享】
抖音小程序怎么开通?小程序开通条件是什么?
Pydantic 中“schema”字段命名冲突的解决方案
Bootstrap 5导航栏折叠功能失效:数据属性迁移指南
2025-11-15
运城市盐湖区信雨科技有限公司是一家深耕海外推广领域十年的专业服务商,作为谷歌推广与Facebook广告全球合作伙伴,聚焦外贸企业出海痛点,以数字化营销为核心,提供一站式海外营销解决方案。公司凭借十年行业沉淀与平台官方资源加持,打破传统外贸获客壁垒,助力企业高效开拓全球市场,成为中小企业出海的可靠合作伙伴。