file是什么文件格式 file格式转换方式

序在如今的项目开发过程中,上传图片或者头像已经成为一种非常常见的操作。一般需要先预览用户在页面中选择的图片,再上传到后台。上传头像只需要预览一张图片。如果是上传图片到相册的功能,需要预览用户选择的多张图片。如何在H5页面实现这个操作?本文系统地教你认识H5提供...

在如今的项目开发过程中,上传图片或者头像已经成为一种非常常见的操作。一般需要先预览用户在页面中选择的图片,再上传到后台。上传头像只需要预览一张图片。如果是上传图片到相册的功能,需要预览用户选择的多张图片。如何在H5页面实现这个操作?本文系统地教你认识H5提供的文件类和文件类,它们在现代项目开发中起着重要的作用。

首先,HTML5向文件域添加属性。

HTML5向文件字段添加了以下两个属性:

multiple,设置文件域是否可以同时选择多个要上传的文件。这是一个没有取值的放置性属性,书写在文件域的代码中就可以使用。accept,用于在文件域对本地文件进行选择时对文件类型进行筛选。该属性取值为MIME类型,以确定弹出的资源管理器只显示accept指定类型的文件。

同时,HTML还规定在项目中使用时,必须为文件域设置name属性。另外,如果表单有文件传递功能,表单的enctype属性必须设置为multipart/form-data。

例如,如果您希望用户通过文件字段从本地浏览器中选择多张图片,HTML代码如下所示。

<form method="get" action="uploadAvatar" enctype="multipart/form-data"> <input type="file" class="tx" name="file" multiple accept="i***ge/jpeg" /></form>123

我们还需要知道,无论是JavaScript的DOM操作,还是jQuery的相关方法,都不能使用form元素的value属性来获取用户选择的文件地址。Value属性只能获取包含文件全名的虚拟地址:

C:\fakepath\文件全名

我们可以从本地c盘查一下,fakepath路径根本不存在。那么如何才能在页面中显示用户选择的图片呢?这将使用Files类和File类。

第二,了解文件类

1.如何创建Files类的实例?

要使用Files类,必须首先创建Files类的一个实例。创建格式如下。

Var实例名称= files do***in.files

var files=document.querySelector(".tx").files; //变量files就是Files类的实例名alert(files); //[object FileList]

2.文件类的属性

length,返回Files类所包含的文件个数。

3.文件类的方法

item(index),返回Files类中所包含文件中索引值为index的文件。

item()方法也可以使用Files类实例名的下标来表示:files.item(0) 也可以写成 files[0]

第三,了解文件类

1.如何创建File类的实例?

要使用File类,必须首先以下列格式创建File类的实例。

Var name = instance。files类的项目(索引);

var file=document.querySelector(".tx").files.item(0); //变量file就是File类的实例名alert(file); //[object File]

2.文件类的属性

name,返回文件的文件名。size,以字节(B)为单位返回文件的大小。type,返回文件的MIME类型名。lastModified,返回文件上一次修改的日期距离1970年1月1日的毫秒数。lastModifiedDate,返回文件上一次修改的日期。

4.知道单页文件的有效地址。

1.blob地址和base***地址

(1)这两类地址可以作为本页文档的有效地址,但不能用于其他页面。
(2)前端技术生成的这两类地址都不能在后台使用。

2.如何获得blob地址

varblobaddress = window . URL . createobjecturl(文件实例| Blob实例)

3.使用blob地址显示图片预览。

示例:该页面有一个文件字段和一个预览图片的容器。HTML代码如下所示。

<input type="file" name="file" /> <div class="imgContainer"></div>12

本机JavaScript代码如下所示。

var fileNode=document.querySelector("input[type=file]");var imgContainer=document.querySelector(".imgContainer");fileNode.onchange=function(){var file=this.files.item(0);var img=new I***ge();img.src=URL.createObjectURL(file);img.width=60;img.height=60;imgContainer.appendChild(img);}

动词 (verb的缩写)FileReader类

1.FileReader类的函数

FileReader类可以读取File类实例引用的文件内容。要获取用户选择的文件的base***地址,必须使用FileReader类。

2.创建FileReader类的实例

var fr = new FileReader();

3.FileReader类的方法

readAsArrayBuffer(file):读取file文件的内容,并作为ArrayBuffer格式得到结果。readAsText(file,charset):按照指定的charset字符集以文本文件的形式读取file文件的内容。readAsBinaryString(file):以二进制字符串的形式读取文件。readAsDataURL(file):读取file文件并返回file文件的base***地址。

4.FileReader类的属性

result,在文件读取结束时返回指定方式读取文件的结果。

5.FileReader类的事件

loadStart:开始读取文件时触发该事件。progress:读取文件过程中触发该事件。load:当文件读取结束时触发该事件。

示例:读取文件(图片)并获取文件的base***地址。

$(".file").addEventListener("input",function(){var file=this.files.item(0);var fr=new FileReader();fr.readAsDataURL(file);fr.onload=function(){$(".tp").src=this.result;}})

示例:设置读取文件的进度条。

<progress ***x="进度条的最大值" value="当前的读取进度"></progress>1$(".file").addEventListener("input",function(){var file=this.files.item(0);var fr=new FileReader();fr.readAsBinaryString(file);fr.onloadstart=function(){ //当开始读取文件时$(".pro").style.display="block";}fr.onprogress=function(){ //读取文件过程中var temp=(event.loaded/file.size)*100;$("progress").value=temp;$("progress+span").textContent=parseInt(temp*10)/10 + "%";}fr.onload=function(){ //读取结束时window.setTimeout(function(){$(".pro").style.display="none";},2000);}})

不及物动词Blob类

1.Blob类的功能

实现一个新文件的创建,它是File类的父类。

2.创建Blob类的实例

Var = newblob (array,{type: "mime type"})

参数:array,Array,用于指定创建文件的内容。

3.斑点案例

示例:创建一个文本文件,并将其保存为指定的本地路径。

$(".btn").addEventListener("click",function(){var txt=$(".txt").value;var array=new Array();array.push(txt);var blob=new Blob(array,{type:"text/plain"});var url=URL.createObjectURL(blob);var aNode=document.createElement("a");aNode.href=url;aNode.download="";aNode.click();})

例2:实现在线HTML代码执行功能。

$(".btn").addEventListener("click",function(){var codeContent=$(".code").textContent;var array=new Array(codeContent.replace(/\s+\</g,'\<').replace(/\>\s+/g,'\>'));var blob=new Blob(array,{type:"text/html"});var fr=new FileReader();fr.readAsText(blob,'gb2312');fr.onload=function(){console.log(this.result);}var url=URL.createObjectURL(blob);$(".iframe").src=url;})

摘要

在HTML5页面操作过程中,Files、File和Bolb可以在很多地方使用。H5提供的这些类可以简化我们对文件的操作,并结合后台函数开发各种文件功能。

关于作者

小海前端拥有18年的Web项目开发和前后台培训经验,拥有系统的前端领域培训教材,在Vue.js、微信小程序开发、uniApp、React等全栈开发领域造诣颇深。今日头条,希望能结识更多Web开发领域的同仁,大力普及Web开发。同时,我们愿意与您进行深入的技术探讨和业务合作。

本文来自不择手段投稿,不代表舒华文档立场,如若转载,请注明出处:https://www.chinashuhua.cn/24/647478.html

打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
() 0
上一篇 07-24
下一篇 07-24

相关推荐

  • file是什么文件格式 file格式转换方式

    序在如今的项目开发过程中,上传图片或者头像已经成为一种非常常见的操作。一般需要先预览用户在页面中选择的图片,再上传到后台。上传头像只需要预览一张图片。如果是上传图片到相册的功能,需要预览用户选择的多张图片。如何在H5页面实现这个操作?本文系统地教你认识H5提供

    2023-07-24 05:20:01
    709 0

评论列表

联系我们

在线咨询: QQ交谈

邮件:admin@qq.com

工作时间:周一至周五,9:30-18:30,节假日休息

关注微信