安卓使用html文件遍历,安卓手机中使用html的input file,获取不到文件类型和文件名...
慕标琳琳
看来这个问题还是比较难解决的,那我就自己来解决一下吧既然直接读取file.type是空字符串,那就只能从文件流里面读取文件头信息了。参考题中的链接方案,这里优化了一下function checkFileType(type, file, back) { /** * type png jpg mp4 ... * file input.change=> this.files[0] * back callback(boolean) */ // http://www.garykessler.net/library/file_sigs.html var args = arguments; if (args.length != 3) { back(0); } var type = args[0]; // type = '(png|jpg)' , 'png' var file = args[1]; var back = typeof args[2] == 'function' ? args[2] : function() {}; if (file.type == '') { // 如果系统无法获取文件类型,则读取二进制流,对二进制进行解析文件类型 var imgType = [ 'ff d8 ff', //jpg '89 50 4e', //png '0 0 0 14 66 74 79 70 69 73 6F 6D', //mp4 '0 0 0 18 66 74 79 70 33 67 70 35', //mp4 '0 0 0 0 66 74 79 70 33 67 70 35', //mp4 '0 0 0 0 66 74 79 70 4D 53 4E 56', //mp4 '0 0 0 0 66 74 79 70 69 73 6F 6D', //mp4 '0 0 0 18 66 74 79 70 6D 70 34 32', //m4v '0 0 0 0 66 74 79 70 6D 70 34 32', //m4v '0 0 0 14 66 74 79 70 71 74 20 20', //mov '0 0 0 0 66 74 79 70 71 74 20 20', //mov '0 0 0 0 6D 6F 6F 76', //mov '4F 67 67 53 0 02', //ogg '1A 45 DF A3', //ogg ]; var typeName = [ 'jpg', 'png', 'mp4', 'mp4', 'mp4', 'mp4', 'mp4', 'm4v', 'm4v', 'mov', 'mov', 'mov', 'ogg', 'ogg', ]; var sliceSize = /png|jpg|jpeg/.test(type) ? 3 : 12; var reader = new FileReader(); reader.readAsArrayBuffer(file); reader.addEventListener("load", function(e) { var slice = e.target.result.slice(0, sliceSize); reader = null; if (slice && slice.byteLength == sliceSize) { var view = new Uint8Array(slice); var arr = []; view.forEach(function(v) { arr.push(v.toString(16)); }); view = null; console.log(arr.join(' ')); var idx = arr.join(' ').indexOf(imgType); if (idx > -1) { back(typeName[idx]); console.log(typeName[idx]); } else { back(false); } } else { back(false); } }); } else { var type = file.name.match(/\.(\w+)$/)[1]; back(type); }}使用方法:input.addEventListener(function(){ var file = this.files[0]; if(file.type==''){ // 第一个参数支持单类型,或多类型,多类型时用竖线分隔,用于生成正则式 checkFileType('(png|jpg|jpeg|mp4|mov|m4v|ogg)',file,function(fileType){ console.log(fileType); //'png' }); checkFileType('jpg',file,function(fileType){ console.log(fileType); //false }); }});只做了对png,jpg,jpeg,mp4,mov,m4v,ogg几个常用格式判断,其他文件类型的文件头信息,可以查看这里:http://www.garykessler.net/li...
安卓使用html文件遍历,安卓手机中使用html的input file,获取不到文件类型和文件名...相关推荐
- 如何在手机端从多个Excel文件多个Sheet中搜索某一内容,多个excel文件批量查找
如何在手机端从多个Excel文件多个Sheet中搜索某一内容,多个excel文件批量查找 今天介绍一个在线工具:e.anyoupin.cn 比如: 多个年度的项目信息,每年一张工作簿.现在需要查找某些 ...
- html只允许上传xlsx,input file限制上传文件类型的方法
在前端html中,上传文件时,一般都是用到 type 属性值为 file 的 input 标签,但在默认情况下,file 类型的 input 标签是不限制选择本地文件的类型的,那么本篇博文,飞鸟慕鱼就 ...
- input file限制上传文件类型的方法
在前端html中,上传文件时,一般都是用到 type 属性值为 file 的 input 标签,但在默认情况下,file 类型的 input 标签是不限制选择本地文件的类型的. input file ...
- 将input file的选择的文件清空的两种解决方案
将input file的选择的文件清空的两种解决方案 参考文章: (1)将input file的选择的文件清空的两种解决方案 (2)https://www.cnblogs.com/wangxueyin ...
- 基于安卓的备忘录文件加密_手机里面还隐藏一个扫描仪功能,以后扫描文件,都不用去复印店了...
手机里面还隐藏一个扫描仪功能,以后扫描文件,都不用去复印店了 办公党肯定深有体会,经常需要扫描文档,一般办公室都有扫描仪,如果在家肯定要去附近的复印店进行扫描. 其实这些方法或多或少都很麻烦,因为现在 ...
- oracle 表导出pdm文件,如何将数据库中已有表导入到powerDesigner生成pdm文件
1.create new PDM: 2.select database menu; 3.click Reverse Engineer database : 4.then choose your sc ...
- 计算机上的word文件传到手机,【1人回答】电脑上的Word文件怎么传到苹果手机上?-3D溜溜网...
回答: 1.将手机连接电脑: 2.安装好手机驱动: 3.关闭USB调试模式,打开USB数据存储: 4.将文件复制至手机: 5.打开WPS-选择打开刚刚复制至手机的文档. 操作步骤如下: 1.在itun ...
- linux 校验文件生成,在Linux中了解如何使用MD5校验和生成和验证文件
校验和是用作在数据正确数字的总和,其可以稍后用于存储或传输期间检测数据中的错误的一个数字.MD5( 消息摘要5)的款项可以用作校验和,以验证文件或字符串在Linux的文件系统 . MD5校验和是128 ...
- ios打不开html文件,在DocumentsWeb目录中打开UIWebview时,ios-css和js在html文件中无法链接...
显然,以编程方式加载HTML文件时,文档库与应用程序的Documents目录不同. 查看HTML中的BASE元素,它位于< head>内.元件: gt; Meta charset=&quo ...
- 服务器拒绝了您发送离线文件的请求,电脑中QQ提示服务器拒绝了您发送离线文件如何解决...
QQ是很多用户都会使用到的一款沟通软件,其具有非常强大的功能,QQ离线文件发送功能就是其中一种.不过,最近一些QQ用户在发送离线文件时,却遇到了QQ离线文件发送不了,提示"服务器拒绝了您发送 ...
最新文章
- python3 +改进HTMLTestRunner.py 测试报告显示
- DIV层+CSS实现锁屏
- 当Java遇上机密计算,又一段奇幻之旅开始了!
- Mac Supervisor 管理进程
- 小鹏汽车窃密特斯拉实锤?前员工回应:确实上传过30万份Autopilot源码
- excel表格导入功能
- 如何更新计算机的flash player,如何在win7电脑中Adobe Flash Player自动更新?
- java简历的专业技能,java程序员专业技能简历范文
- 本来都对象棋失去兴趣了, 是特殊的原因让我又开始从侧面搞象棋方面的擦边的游戏...
- java微信退款接口demo_微信公众号接口开发----退款详解
- 计算机表格怎么算加减,excel表格数据的加减-excel表格怎么自动计算加减
- 阿里云认证未来网络学院ACE公开课——30分钟掌握ACE考试通关攻略
- 输入一个正整数数组,把数组里所有数字拼接起来排成一个数,打印能拼接出的所有数字中最小的一个。例如输入数组{3,32,321},则打印出这三个数字能排成的最小数字为321323
- 【BZOJ4199】品酒大会(NOI2015)-后缀数组+并查集
- 2021.02.02刷题总结
- P1008 [NOIP1998 普及组] 三连击
- Etcd——大厂面试问题集合
- windows可以ping通linux虚拟机的ip,但是ping不通主机名称解决方案
- python pandas 数据分析-读取csv excel
- gets() 与puts()的用法
热门文章
- 1 操作系统安全加固
- LR监控linux系统资源
- 读源码Apache-commons-lang3-3.1(一)
- DDK nmake : error 解决方法
- 操作两个表的SQL语句,可用在数据源中
- linux图标大全——这些你认识多少?
- 23. Linux 主机上的用户信息传递
- 1. Symfony 2 --- 简介
- Android开发7——android database CursorIndexOutOfBoundsException
- [2019杭电多校第五场][hdu6630]permutation 2