file

<body>
<input type="file" multiple size="80" id="file">
<button οnclick="showName()">上传</button>
<script type="text/javascript">
	function showName(){
		var file;
		//document.getElementById('file').files返回fileList文件列表对象
		var len = document.getElementById('file').files.length;
		for(let i = 0; i<len; i++){
			//file对象为用户选择单个文件
			file = document.getElementById('file').files[i];
			//此处可以针对fileList文件列表中每个文件进行多种处理
			alert(file.name)
		}
	}
</script>
</body>
</html>

file弹出文件名

blob表示二进制原始数据,他提供一个slice方法,可以通过该方法访问到字节内部的原始数据块。事实上,上面提到的file对象也继承了这个blob对象

blob对象有两个属性,size属性表示一个blob对象的字节长度,type属性表示blob的mime类型,如果是未知类型,则返回空字符串。

对于图像类型的文件,blob对象的type属性都是以“image/”开头 的,后面是图像的类型,利用此特性我们可以在js中判断用户选择的文件是否为图像,在图片上传时可以利用该规则进行文件筛选。

另外,html5中在file控件中添加了accept属性,可以在用户选择时提前限制文件的类型,但是这个还是能更改成所有的文件

例:<input type="file" id="file" accept="image/*" />

<title>blob对象</title>
<style>

</style>
</head>
<body>
<input type="file" multiple size="80" id="file">
<button οnclick="fileUpdate()">上传</button>
<script type="text/javascript">
	function fileUpdate(){
		var file;
		//document.getElementById('file').files返回fileList文件列表对象
		var len = document.getElementById('file').files.length;
		for(let i = 0; i<len; i++){
			//file对象为用户选择单个文件
			file = document.getElementById('file').files[i];
			//此处可以针对fileList文件列表中每个文件进行多种处理
			if(!/image\/\w+/.test(file.type)){
				alert('上传文件格式不正确');
				break;
			}else{
				//此处为上传代码
				alert('上传成功');
			}
		}
	}
</script>



fileReader接口

fileReader接口主要用来把文件读入内存,并且读取文件中的数据。fileReader接口提供了一个一部API,使用该API可以在浏览器主线程中一部访问文件系统,读取文件中的数据。各个浏览器支持的程度不同,有一种方法可以检测浏览器是否支持fileReader

if(typeof FileReader == 'undefined'){
		alert('no')
	}else{
		alert('yes')
	}
fileReader接口拥有4个方法,其中三个用于读取文件,另一个用于将读取过程中断。

需要注意的是:无论读取成功或失败,方法不会返回读取结果,这一结果存储在result属性中。

方法名 参数 描述

readAsBinaryString file讲一个文件读取为二进制码

readAsText file,[encoding]将文件读取为文本

readAsDataURL file将文件读取为DataURL

abort (none)中断读取操作

readAsText:该方法有两个参数,第二个是文件的编码方式,默认utf-8。将文件以文本方式读取,读取结果即是这个文本文件中的内容。

readAsBinaryString:这个方法将文件读取为二进制字符串,通常我们将它传送到后端,后端利用这段字符串存储文件。

readAsDataURL:该方法将文件读取为一串DataURL字符串,该方法实际上是将小文件以一种特殊格式的URL地址形式直接读取入页面。这里的小文件通常是指图像与html等格式的文件。

fileReader的接口事件:

除了以上的方法外,fileReader接口还包含了一套完整的事件模型,用于捕获读取文件时的状态

事件 描述

onabort 数据读取中断时触发

onerror 数据读取出错时触发

onloadstart数据读取开始时触发

onprogress 数据读取中

onload 数据读取成功完成时触发

onloadend 数据读取完成事触发,无论成功或失败






评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值