https://www.cnblogs.com/LO-gin/p/6817319.html
方法一:使举悉用孙派js的FileReader对象
1、FileReader对象简介
检测浏览器对FileReader的支持
调用FileReader对象的方法
FileReader 的实例拥有 4 个方法,其中 3 个用以读取文件,另一个用来中断读取。下面的表格列出了这些方法以及他们的参数和功能,
需要注意的是 ,无论读取成功或失败,方法并不会返回读取结果,这一结果存储在 result属性中。
readAsText:该方法有两个参数,其中第二个参数是文本的编码方式,默认值为 UTF-8。这个方法非常容易理解,将文件以文本方式读取,读取的结果即是这个文本文件中的内容。
readAsBinaryString:该方法将文件读取为二进制字符串,通常我们将它传送到后端,后端可以通过这段字符串存储文件。
readAsDataURL:这是例子程序中用到的方法,该方法将文件读取为一段以 data: 开头的字符串,这段字符串的实质就是 Data URL,Data URL是一种将小文件直接嵌入文档的方案。这里的小文件通常是指图像与 html 等格式的文件。(其中base64的方式就是由此来获得的。。)
文件一旦开始读取,无论成功或失败,实例的 result 属性都会被填充。如果读取失败,则 result 的值为 null ,否则即是读取的结果,绝大多数的程序都会在成功读取文件的时候,抓取这个值。
例正凯乎子:
3 、使用js的FileReader对象实现上传图片时的图片预览功能
方法二:使用window.createObjectURL
使用 input ,指定类型为 file ,来完成文游行稿件上传功能。
多文件上传需要在标签上添加 mulyiple 属性:
使用 accept 属性来限制上传文件的类型,当然这么做任然是不可靠的,还需要后端做进一步的判断。
如果我们是用户,当我们上传了一张图片,却只显示了几个文字,是不是很不爽,那我们怎么来实现预带改览功能呢?
我们可以使用 FileReader 将图像转换为二进制字符串,然后添加 load 事件监听,在文件上传成功后获取二进制字符串。
显示神孝文件上册进度 来提高用户体验
FileReader 还有一个 progress 事件,表示当前上传进度,配合HTML5的 progress 标签,我们来模拟一下文件的上传进度。
1 页面HTML内容
2 获取input[file]元素
3 对获取的file元素 *** 作,也就是 *** 作fileReader属性
1:Blob
2: File
3: FileList
4: FileReader
FileList :
这里,默认状态下选择文件 每次files属性上FileList对象里只有一个file文件。
file对象中包含了name 文件名size type 文件类型lastModified 最后修改时间枯蔽;
FileReader:异步读取本地文件内容;包括File 和Blob ;
创建FileReader对象读取file文件
关于fileReader的几个属性:
FileReader.error 只读一个 DOMException 代表在读取文件中出现的错误。 FileReader.readyState 只读一个数字表明的状态FileReader。这是以下之一:
FileReader.result 只读文件的内容。该属性仅在读取 *** 作完成后才有效,并且数据的格式取决于使用哪种方法来启动读取 *** 作。
fileReader的几芹桥个事件处理程序:
1 . FileReader.onbort:在读取 *** 作中止时触发。
2 . FileReader.onerror:在读取 *** 作遇到错误时触发。
3 . FileReader.onload:在读取 *** 作成功完成时触发。
4 . FileReader.onloadstart:在开始阅读时触发。
5 . FileReader.onloadend:无论是否成功 只要读取 *** 作完成都会触发。
6 . FileReader.onprogress:阅读Blob内容时触发。
FileReader的方法:
1 . FileReader.abort()中止读取 *** 作
2 . FileReader.readAsArrayBuffer()完成时result属性包含ArrayBuffer表示文件数据
3 . FileReader.readAsBinaryString()完成时result属性将包含来自文件的原始二进制数据作为字符串。
4 . FileReader.readAsDataURL()完成时result属性包含data:表示文本数据的URL;
5 . FileReader.readAsText()完成没首州时result属性包含文本的内容作为文本字符串。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)