新闻中心
J*aScript 获取 HTML 文件上传的文件名

本文介绍了如何使用 J*aScript 获取 HTML 文件上传控件中选择的文件名。通过监听 change 事件,可以实时获取用户选择的文件信息,并将其文件名显示在页面上。文章提供了详细的代码示例和 CSS 样式建议,帮助开发者轻松实现文件名的动态展示。
在 Web 开发中,经常需要获取用户通过文件上传控件选择的文件名,并在页面上进行展示。直接读取 input 元素的 value 属性,只能在第二次点击按钮后才能获取到值,并且获取的是文件的完整路径,而非文件名。正确的做法是监听 input 元素的 change 事件,并在事件处理函数中获取 File 对象,进而获取文件名。
实现步骤
-
HTML 结构: 创建一个隐藏的文件上传控件 (input type="file"),一个按钮 (button),以及一个用于显示文件名的 span 元素。
<input type="file" name="" id="filee"> <button type="button" id="btn">Choose a File</button> <span id="filename"></span>
注意 button 标签的 type 属性设置为 "button",防止默认的 submit 行为。
-
J*aScript 代码: 获取 HTML 元素,并为文件上传控件绑定 change 事件监听器,为按钮绑定 click 事件监听器。
let file = document.getElementById('filee'); let btn = document.getElementById("btn"); let filename = document.getElementById("filename"); file.addEventListener('change', event => { const [selectedFile] = event.target.files; filename.innerText = selectedFile.name; }); btn.addEventListener('click', () => { file.click(); });这段代码首先获取了文件上传控件、按钮和用于显示文件名的 span 元素。然后,它为文件上传控件添加了一个 change 事件监听器。当用户选择文件后,事件处理函数会被触发,从 event.target.files 中获取 File 对象,并将其 name 属性(即文件名)赋值给 span 元素的 innerText 属性,从而在页面上显示文件名。 最后,为按钮添加一个 click 事件监听器,点击按钮时,触发文件上传控件的点击事件,从而弹出文件选择框。
jQuery多文件上传并获取大小与格式代码
jQuery多文件上传并获取大小与格式代码
50
查看详情
-
隐藏文件上传控件: 为了美观,通常会将默认的文件上传控件隐藏,并使用自定义的按钮来触发文件选择。可以使用 CSS 来实现隐藏效果。
#filee { clip: rect(0 0 0 0); clip-path: inset(50%); height: 1px; overflow: hidden; position: absolute; white-space: nowrap; width: 1px; }这种方式隐藏元素更优雅,更符合语义,并且对屏幕阅读器友好。避免使用 visibility: hidden 或 display: none,因为这些方法可能会影响辅助技术的可访问性。
完整代码示例
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>获取文件名</title>
<style type="text/css">
#filee{
clip: rect(0 0 0 0);
clip-path: inset(50%);
height: 1px;
overflow: hidden;
position: absolute;
white-space: nowrap;
width: 1px;
}
</style>
</head>
<body>
<input type="file" name="" id="filee">
<button type="button" id="btn">Choose a File</button>
<span id="filename"></span>
<script type="text/j*ascript">
let file = document.getElementById('filee');
let btn = document.getElementById("btn");
let filename = document.getElementById("filename");
file.addEventListener('change', event => {
const [selectedFile] = event.target.files;
filename.innerText = selectedFile.name;
});
btn.addEventListener('click', () => {
file.click(
);
});
</script>
</body>
</html>注意事项
- event.target.files 返回一个 FileList 对象,即使只允许上传一个文件,也需要通过索引 [0] 来获取 File 对象。
- File 对象包含很多有用的信息,例如 name(文件名)、size(文件大小)、type(文件类型)等,可以根据需要进行使用。
- 出于安全考虑,浏览器不允许 J*aScript 直接操作本地文件系统,因此无法直接获取文件的完整路径。
总结
通过监听 change 事件,可以方便地获取 HTML 文件上传控件中选择的文件名,并将其动态显示在页面上。这种方法简单易用,并且可以获取到 File 对象的其他有用信息,为 Web 开发提供了便利。 记住使用合适的 CSS 样式来隐藏默认的文件上传控件,并提供自定义的按钮来提升用户体验。
以上就是J*aScript 获取 HTML 文件上传的文件名的详细内容,更多请关注其它相关文章!
# 并将其
# 山西抖音seo方案公司
# SEO入门玄关吊顶装修
# seo优化系统招商
# 抖音精准广告推广营销获客
# 保定商城网站优化服务
# 明星网站建设美丽中国
# 太原seo怎么推广
# 搏击类场馆如何推广营销
# 未来5年seo优化
# 推广美丽乡村的网站推荐
# 而在
# 的是
# 显示效果
# css
# 绑定
# 自定义
# 并在
# 单选框
# 表单
# 文件上传
# overflow
# 点击事件
# 浏览器
# html
# java
# javascript
相关栏目:
【
科技资讯46185 】
【
网络学院92790 】
相关推荐:
极速漫画官方主页网址 极速漫画漫画在线浏览官网链接
新手怎么开始学化妆 零基础化妆入门教程
俄罗斯Yandex搜索引擎入口_Yandex官网免登录一键访问
Python自定义类排序:解决lambda键值访问TypeError的实践指南
包子漫画官方网站阅读入口-包子漫画在线漫画官网直达链接
QQ邮箱网页版入口登录 QQ邮箱在线邮箱官方通道
必由学网页版入口 必由学官方平台直接访问
魅族20怎样在浏览器开无图省流_iPhone魅族20浏览器开无图省流【流量节省】
2026年CSGO开箱网站推荐 CSGO开箱平台精选
微博网页版主页入口 微博官方网站免登录访问
TikTok国际版官网直达_TikTok国际版官网直达进入在线观看
Yandex官网免登录入口_俄罗斯Yandex搜索引擎一键访问
C#中解析不规范的HTML为XML 常见的坑与解决办法
Node.js中HTML按钮与J*aScript函数交互的正确姿势
QQ邮箱正确登录入口_QQ邮箱官方网站使用地址
格力空气能E5故障代码是什么情况_格力空气能E5代码解析与应对措施
深入理解J*a编译器的兼容性选项:从-source到--release
蛙漫漫画免费阅读入口_蛙漫官方正版无广告纯净版
为什么简单的XML文件也会解析失败? 检查隐藏的非打印字符(如BOM)的方法
快手赚钱渠道_快手收益来源
谷歌推RCS信息存档功能:公司可监控员工私密信息!
sublime侧边栏怎么增强功能_SideBarEnhancements for sublime安装与配置
微博网页版怎么开启两步验证_微博网页版账号安全两步验证设置方法
BetterDiscord插件中安全更新用户简介的实践指南
飞书妙记怎样用语音转文字速记_飞书妙记用语音转文字速记【速记方法】
蛙漫官网漫画入口地址_蛙漫在线畅读无广告弹窗
Golang如何优化内存分配与垃圾回收_Golang内存管理与GC优化实践
红果短剧网页版官网入口 官方最新网址发布
cad如何更改注释性对象的比例_cad注释性比例调整方法
Golang如何实现简单的Web表单_Golang表单提交与验证处理方法
Win11怎么开启高性能模式_Windows 11电源计划优化设置
在J*a中如何隐藏复杂性_使用门面模式组织对象交互
c++如何使用折叠表达式(Fold Expressions)_c++17可变参数模板新技巧
深入理解与实现最大堆的Heapify过程:常见错误与修正
Golang如何使用bytes.Split分割字节切片_Golang bytes切片分割方法
163邮箱网页版入口导航平台 163邮箱网页版登录入口官网导航
邮编格式怎么匹配地址_根据邮编格式快速匹配详细地址的技巧
必由学官网快捷入口 必由学网页版在线学习平台
机器学习中对数变换预测结果的反向还原
手机CPU怎么影响游戏体验_手机CPU对游戏性能的影响分析
如何为你的Composer包编写自动化测试_集成PHPUnit到Composer的scripts工作流
高德地图家和公司地址在哪设置 高德地图通勤路线设置方法【超详细】
台积电1.4nm工艺A14瞄准2028:10年来性能提升80%
今日头条怎么同步内容到抖音_今日头条内容同步到抖音教程
sublime怎么进行远程开发编辑_配置rsub/rmate实现sublime编辑服务器文件
QQ官网正版登录链接 QQ在线登录入口最新
Spring Boot嵌入式服务器与J*a EE:功能支持深度解析
4399体育竞技小游戏_4399小游戏赛事入口
TikTok搜索不到用户发布内容怎么办 TikTok用户内容搜索优化方法
在Runstone环境中高效处理TasteDive API的JSON数据


2025-10-08
浏览次数:次
返回列表
);
});
</script>
</body>
</html>