原生Js对文件类型的判断,判断文件是图片,视频等格式

时间: 2018-01-05阅读: 5449标签: 图片

在我们开发中,会遇到这样的场景:

1.服务器返回Json数据,根据数据类型来显示是图片还是视频。
2.前端上传文件,需要指定文件类型才能上传到服务器。

这时候就需要使用Js来判断对应文件的类型了,我们常用的判断是通过后缀来实现的。


html结构如下:

<input type="file" id="file" onchange="test()"/>


方案一:

步骤1:通过ID获取文件名的后缀:

function getSuffix(id){
	var dom=document.getElementById(id).value;//根据id得到值
	var index=dom.lastIndexOf(".")//得到最后一个"."在第几位
	return dom.substring(index).toLowerCase(); //截断"."之前的,得到后缀[忽略大写]
}

步骤2:判断文件是图片格式:

function test(){
	var suffix=getSuffix('file');
	if(suffix!=".bmp"&&suffix!=".png"&&suffix!=".gif"&&suffix!=".jpg"&&suffix!=".jpeg"){  //根据后缀,判断是否符合图片格式
        console.log("不是指定图片格式,重新选择"); 
        return false;
   }
}


方案二:

除了上面方法,我们还可以结合正则来判断如下:

function test(){
	var ImgType=["gif", "jpeg", "jpg", "bmp", "png"];//图片
	var dom=document.getElementById('file').value;//根据id得到值
	if(!RegExp("\.(" + ImgType.join("|") + ")$", "i").test(dom.toLowerCase())){
		console.log("不是指定图片格式,重新选择"); 
		return false;
	}
}





吐血推荐

1.站长广告联盟: 整理了目前主流的广告联盟平台,如果你有流量,可以作为参考选择适合你的平台点击进入...

2.休闲娱乐: 直播/交友    优惠券领取   网页游戏   H5游戏

链接: http://www.fly63.com/article/detial/325

vue引入图片

通过在vue文件引入scss样式文件;如果scss文件有引入背景图片,这里不能使用相对路径了,需要使用~开头的方式,如果 URL 以 ~ 开头,其后的任何内容都会作为一个模块请求被解析。

WPF 中如何创建忽略 DPI 属性的图片

WPF 框架设计为与 DPI 无关,但你依然可能遇到 DPI 问题。尤其是 Image 控件显示的图片会根据图片 EXIF 中的 DPI 信息和屏幕 DPI 自动缩放图片。对于 UI 用图来说这是好事

前端开发中对图片的优化技巧有哪些?

除了内容图片,其他的图片的作用是修饰,也就是对于传达信息来说并非本质性的。最大的优化就是压根不要图片!所以在优化之前要做的,首先是确认设计,设计本身是否需要用那么多图片?还是说可以更简洁?

webpack 加载动态图片

所谓动态图片指的是接口返回的图片地址,这里的地址指的是本地的图片地址,而非网络图片的url。本地有一个 image 文件夹,存放需要用到的图片。按照接口返回的图片地址比对去加载。

微信小程序动态设置图片大小

image有默认的固定的宽度和高度,这样我们在做图片自适应的时候,就不好做了,特别是我们在做一些商品详情页的时候,需要image自适应屏幕,按原图比例显示。那么如何让image自适应比例显示呢?

图片该如何优化来提高网站性能?

图像是web上提供的最基本的内容类型之一。他们说一张图片胜过千言万语。但是如果你不小心的话,图片大小有时高达几十兆。因此,虽然网络图像需要清晰明快,但它们尺寸可以缩小压缩的,使用加载时间保持在可接受的水平。

解码 PNG 图片

解码 PNG 图片就是把一张图片从二进制数据转成包含像素数据的 ImageData 。图片的二进制数据可以从 <canvas> , <img> ,Object URLs,Image URLs, Blob 对象上获取到。参见浏览器图像转换手册。

阻止h5手机点击图片会有查看大图的功能

在H5页面,多次点击img标签时,会弹出当前的图片(效果类似查看),再点击,恢复部分手机点击图片会出现只看该图的功能,这个是手机自己浏览器自带的功能,这个时候只要将图片的冒泡冒泡阻止掉就可以了。

vue使用readAsDataURL实现选择图片文件后预览

方法会读取指定的 Blob 或 File 对象。读取操作完成的时候,readyState 会变成已完成DONE,并触发 loadend 事件,同时 result 属性将包含一个data:URL格式的字符串(base64编码)以表示所读取文件的内容

js实现图片转base64格式,并压缩上传

需要用户上传身份证,并识别身份证的编号存储在后端,这里要求实现图片上传,并转为base64的格式,传给服务器失败图片的身份证号码。由于很多用户用手机拍摄的照片

fly63.com版权所有,内容以共享、参考、研究为目的,不存在任何商业目的。其版权属原作者所有,如有侵权,请与小编联系!情况属实本人将予以删除!

文章投稿关于web前端网站点搜索站长推荐网站地图站长QQ:522607023

小程序专栏: 土味情话心理测试脑筋急转弯幽默笑话段子句子语录成语大全