JavaScript 获取 HTML 文件上传的文件名

javascript 获取 html 文件上传的文件名

本文介绍了如何使用 JavaScript 获取 HTML 文件上传控件中选择的文件名。通过监听 change 事件,可以实时获取用户选择的文件信息,并将其文件名显示在页面上。文章提供了详细的代码示例和 CSS 样式建议,帮助开发者轻松实现文件名的动态展示。

在 Web 开发中,经常需要获取用户通过文件上传控件选择的文件名,并在页面上进行展示。直接读取 input 元素的 value 属性,只能在第二次点击按钮后才能获取到值,并且获取的是文件的完整路径,而非文件名。正确的做法是监听 input 元素的 change 事件,并在事件处理函数中获取 File 对象,进而获取文件名。

实现步骤

HTML 结构: 创建一个隐藏的文件上传控件 (input type=”file”),一个按钮 (button),以及一个用于显示文件名的 span 元素。

立即学习“Java免费学习笔记(深入)”;

注意 button 标签的 type 属性设置为 “button”,防止默认的 submit 行为。

JavaScript 代码: 获取 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 事件监听器,点击按钮时,触发文件上传控件的点击事件,从而弹出文件选择框。

隐藏文件上传控件: 为了美观,通常会将默认的文件上传控件隐藏,并使用自定义的按钮来触发文件选择。可以使用 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,因为这些方法可能会影响辅助技术的可访问性。

完整代码示例

            获取文件名            #filee{            clip: rect(0 0 0 0);            clip-path: inset(50%);            height: 1px;            overflow: hidden;            position: absolute;            white-space: nowrap;            width: 1px;        }                            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();        });    

注意事项

event.target.files 返回一个 FileList 对象,即使只允许上传一个文件,也需要通过索引 [0] 来获取 File 对象。File 对象包含很多有用的信息,例如 name(文件名)、size(文件大小)、type(文件类型)等,可以根据需要进行使用。出于安全考虑,浏览器不允许 JavaScript 直接操作本地文件系统,因此无法直接获取文件的完整路径。

总结

通过监听 change 事件,可以方便地获取 HTML 文件上传控件中选择的文件名,并将其动态显示在页面上。这种方法简单易用,并且可以获取到 File 对象的其他有用信息,为 Web 开发提供了便利。 记住使用合适的 CSS 样式来隐藏默认的文件上传控件,并提供自定义的按钮来提升用户体验。

以上就是JavaScript 获取 HTML 文件上传的文件名的详细内容,更多请关注创想鸟其它相关文章!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 chuangxiangniao@163.com 举报,一经查实,本站将立刻删除。
发布者:程序猿,转转请注明出处:https://www.chuangxiangniao.com/p/1582293.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
确保带有top属性的固定定位div高度正确占满屏幕剩余空间
上一篇 2025年12月22日 23:01:57
精通CSS全页背景与布局:解决意外空白和结构问题
下一篇 2025年12月22日 23:02:12

相关推荐

发表回复

登录后才能评论
关注微信