JavaScript实现的文件上传功能
需积分: 50 148 浏览量
更新于2024-09-12
收藏 27KB DOC 举报
这个资源提供了一段JavaScript代码,用于实现类似QQ邮箱的附件上传功能。作者aquaqin创建了一个HTML页面,其中包含JavaScript函数来处理文件选择和附件列表的管理。该代码允许用户选择文件并将其添加到附件列表中,同时提供了删除附件的功能。
以下是这段代码的关键知识点:
1. **文件上传控件**:HTML中的`<input type="file">`控件用于让用户选择本地文件。在IE浏览器中,不能直接通过JavaScript修改其`type`属性,因此使用`insertAdjacentHTML`方法动态插入HTML代码来创建这个控件。
2. **只读属性**:`<input type="file">`的`value`属性是只读的,这意味着你不能通过JavaScript直接设置它的值。这意味着用户必须重新选择文件,而不是简单地更新已选文件。
3. **onchange事件**:当用户选择新文件时,`onchange`事件触发。但是,如果用户删除最后一个文件后再选择同一个文件,`onchange`事件不会再次触发。因此,代码中使用了一个变量`i`来跟踪附件的数量,并通过`findAttachment`函数检查文件是否已存在于列表中。
4. **文件大小获取**:在客户端,JavaScript通常无法直接获取文件大小,除非使用文件系统对象(FSO)或ActiveX对象,但这通常受到浏览器安全性的限制。对于图像文件,可以通过加载图片后获取`fileSize`属性。另一种方法是使用Flash与JavaScript交互,但现代浏览器的安全策略可能对此有所限制。
5. **删除附件**:`delAttachment`函数用于从附件列表中删除选定的文件。它通过传递一个标识符来定位并移除相应的`<span>`元素。
6. **附件列表显示**:选择的文件名会显示在附件列表中,每个文件名后面都有一个“删除”链接,用户点击后可以移除附件。`_attachment`+`i`作为唯一ID分配给每个新创建的`<span>`元素,便于后续操作。
7. **JavaScript命名空间**:虽然在这个例子中没有明确的命名空间,但通过使用`G`函数来访问DOM元素,可以避免全局作用域的污染,这在大型项目中是非常重要的实践。
8. **版本控制**:代码的版本被标记为1.0,表明作者计划在未来进行改进和更新。
9. **跨浏览器兼容性**:这段代码可能需要针对不同的浏览器进行调整,以确保在所有目标平台上都能正常工作。例如,某些特性可能仅在特定浏览器中可用,需要添加条件语句或使用polyfills来增加兼容性。
这个资源提供了一个基础的文件上传实现,可以作为构建更复杂上传功能的起点,例如多文件上传、进度条显示、文件预览等。开发者需要根据实际需求和当前的浏览器环境对其进行扩展和完善。
点击了解资源详情
点击了解资源详情
点击了解资源详情
140 浏览量
2020-12-11 上传
149 浏览量
2023-05-28 上传
2024-05-08 上传
wodekafeimao0
- 粉丝: 7
最新资源
- 老板数据库的管理与应用
- Matlab文件导航工具:跨平台目录管理新体验
- Topshelf实现Windows服务开发快速指南
- 全栈技术项目源码合集,助力学习与开发
- PHP实现Slack回发机器人Slacker
- zdict:掌握多种词典的强大Python在线框架
- Twilio代理协助支付:Python实现的概念验证应用
- MesaggeApp:CSS技术应用与前端开发实践
- MATLAB命令窗口增强:文件资源管理与快速操作
- 海康摄像头CH_WEB3.0控件开发包1.1.0版本介绍
- VB实现禁用与更换桌面属性的简易教程
- 基于Spring Boot与Vue的课程管理评价系统设计
- 揭秘巴科特·康托尔:Python技术的光辉
- 64位PACS影像浏览器:无需安装,直接使用
- JCash:开源Java资金管理应用详解
- QSufsort算法:字符串排序的高效实现