学习笔记——input:file的美化与文件上传
来源:互联网 发布:软件售后合同 编辑:程序博客网 时间:2024/06/02 02:36
实例
<input id="upload-btn" type="file" accept="image/png, image/gif" name="file" />
accept属性详解
accept属性主要用于限制文件类型,只有accept属性中声明的文件类型可以被发现。下表中列出了常用的MIME类型(也可以直接在accept属性中申明文件后缀名,如:accept=”.xls, .xlsx”):
美化
原生的input样式显然不能满足我们的要求。那怎样才能自定义按钮样式呢?笔者采用的方法是将input标签包裹在a标签内部,并把input标签的opacity设置为0,通过修改a标签的style来自定义按钮。
css:
#upload-container { position: relative; // 添加自定义样式 // TODO}#upload { position: absolute; width: 100%; height: 100%; top: 0; left: 0; opacity: 0;}
html:
<a id="upload-container" href="javascript:void(0);">上传 <input id="upload" type="file" accept="image/png, image/gif" name="file" /></a>
事件
onchange
onchange触发事件必须满足两个条件:
a)当前对象属性改变,并且是由键盘或鼠标事件激发的(脚本触发无效)。
b)当前对象失去焦点(onblur)。
onpropertychange
只要当前对象属性发生改变,都会触发事件,但是它是IE专属的。
oninput
oninput是onpropertychange的非IE浏览器版本,支持firefox和opera等浏览器,但有一点不同,它绑定于对象时,并非该对象所有属性改变都能触发事件,它只在对象value值发生改变时奏效。
总结:经笔者实践
对于chrome来说,onchange可以在文件路径发生改变时触发;
对于opera、firefox等,onchange、oninput可以在选择文件时触发;
对于ie,onpropertychange可以在选择文件时触发;
读取文件
由于新版浏览器出于安全原因并不支持通过input的value属性直接获取文件绝对路径,所以笔者采用以下方法:
document.getElementById("upload").onchange = function(event) { var FileReader = window.FileReader; var reader = new FileReader(); reader.onload = function(e) { let data = e.target.result; console.log(data) }; var file = event.target.files[0]; reader.readAsDataURL(file);}
- onload实现异步加载,将数据加载完毕后,在onload事件中,通过result属性即可获得文件内容。
- 详细FileReader的API可参见FileReader。
尾语
不当之处,敬请斧正,与君共勉。
1 0
- 学习笔记——input:file的美化与文件上传
- 美化上传input file
- input file美化 --上传图片
- input file 上传隐藏美化
- 美化input type="file" 文件上传表单
- 上传文件file按钮的美化处理
- input file文件框 美化
- 上传按钮<input type='file'/>的样式美化
- input[type=file] 样式美化,input上传按钮美化
- 美化input文件上传按钮
- css input[type=file] 样式美化(input上传文件样式 )
- 任意美化你的文件域 <input type="file" />
- Html+CSS input type=file 文件标签的美化
- 美化文件域input type=file的样式
- input file 上传文件
- input file文件上传
- 获取上传文件的路径input file
- input file 文件选择框美化
- PC自增与转移地址计算问题总结
- Ubuntu下的文件比较工具--meld
- 非IMU和IMU模式下redo log格式解析
- android中用java方法编写xml布局
- DatabaseMetaData 动态获取数据库表信息
- 学习笔记——input:file的美化与文件上传
- php递归实现无限级分类
- 在java-web中,关于cookie和session
- 12.5 Webview返回顶部 WKWebView使用/知识点博客/各种项目源码/图片资源丢失引起报错
- JAVA中的管道流的简单用法
- DrawableCompat之改变图标颜色
- cpp 8.1
- View绘制流程浅析,我所理解的View绘制。
- 第14周项目1-(1)验证折半查找算法