js实现上传图片功能的方法,js实现上传图片功能命令

js实现上传图片功能的方法,js实现上传图片功能命令,js实现上传图片功能

本文主要详细介绍js的上传图片功能。本文中的示例代码非常详细,具有一定的参考价值。感兴趣的朋友可以参考一下。

上传前端图片的原理是:使用input type="file "的标签获取图片,然后使用对象FileReader创建一个新的实例。该对象的readAsDataURL()方法读取文件标签获取的图片,并将其转换为base64格式。完成后通过ajax之类的传输到后台。

HTML

你需要一个input type=file 标签,如果需要预览的话可以再添加一个img标签。

div class=warp

点击上传/div

输入类型=文件 id=文件/

/div

img src= /

JS

第一,图片上传需要检测上传的图片是否有变化,所以这里选择js的onchange事件。首先,获取input和img的dom元素。在input type= file 的demo元素下,有一个files属性,包含我们上传的文件的信息。打印出来后可以看到上传文件的名称、类型等信息。

var file=document . getelementbyid( file );

var image=document . query selector( img );

file.onchange=function() {

var file data=this . files[0];//这是我们上传的文件

}

其次,使用FileReader对象。FileReader主要用于将文件的内容读入内存。通过一系列异步接口,可以在主线程中访问本地文件。使用FileReader对象,web应用程序可以异步读取存储在用户计算机上的文件(或原始数据缓冲区)的内容,并可以使用File对象或Blob对象来指定要处理的文件或数据。这里使用了readAsDataURL的方法,可以读取base64格式的文件。

使用方法

var reader=new FileReader();

reader . readasdataurl(file data);//异步读取文件内容,结果表示为一串数据:url

/*当读取操作成功完成时调用*/

reader.onload=函数(e) {

console . log(e);//检查对象属性。有一个结果属性,属性值,是base64格式的一堆东西。这是我们想要的照片。

console . log(this . result);//获取数据。这里指向FileReader()对象的实例读取器

Image.setattribute (src ,this . result)//给img标签赋值使其显示。

}

FileReader对象的属性和事件

FileReader对象的正式文档

第三,第二步完成后,我们就可以上传图片了。当用户重复使用时,我们不能保证用户上传的是什么,图片还是视频。我们需要判断上传的文件类型。在输入类型= file 的demo元素下,有一个包含文件类型信息的files属性。我们可以通过这个属性来判断上传的文件类型。(在reader.onload中,可以通过this.result获取图像的base64格式,并将其赋给一个变量传递给后台,从而完成一次图像上传)

var file=document . getelementbyid( file );

var image=document . query selector( img );

file.onchange=function() {

var file data=this . files[0];//获取FileList对象中的第一个文件(File对象),也就是我们上传的文件。

var pet tern=/^image/;

console.info(fileData.type)

如果(!pettern.test(fileData.type)) {

Alert(图片格式不正确);

返回;

}

var reader=new FileReader();

reader . readasdataurl(file data);//异步读取文件内容,结果表示为一串数据:url

/*当读取操作成功完成时调用*/

reader.onload=函数(e) {

console . log(e);//查看对象

console . log(this . result);//所需的数据

image.setAttribute(src ,this.result)

}

}

所有代码:

!文档类型html

超文本标记语言

meta charset=utf-8

标题/标题

style type=text/css 。翘曲

显示:内嵌-块;

垂直对齐:底部;

位置:相对;

}。扭曲内容{

边框:1px纯红;

宽度:150像素

高度:150像素

行高:150像素;

文本对齐:居中;

}

输入{

位置:绝对;

top:0;

左:0;

边框:1px纯红;

宽度:150像素

高度:150像素

不透明度:0;

光标:指针;

}

img {

宽度:300像素

高度:300像素

边框:1px纯红;

边距-顶部:50px

垂直对齐:底部;

}

/风格

/头

身体

div class=fileBox

div class=warp

div class=翘曲内容点击上传/div

输入类型=文件id=文件/

/div

img src= /

/div

脚本类型=文本/javascript

var文件=文档。getelementbyid( file );

var image=文档。查询选择器(“img”);

file.onchange=function() {

var文件数据=this。文件[0];//获取到一个文件列表对象中的第一个文件(文件对象),是我们上传的文件

var pet tern=/^image/;

console.info(fileData.type)

如果(!pettern.test(fileData.type)) {

警报(图片格式不正确);

返回;

}

var reader=new FileReader();

读者。readasdataurl(文件数据);//异步读取文件内容,结果用数据:url的字符串形式表示

/*当读取操作成功完成时调用*/

reader.onload=函数(e) {

控制台。日志(e);//查看对象

控制台。日志(这个。结果);//要的数据这里的这指向FileReader()对象的实例读者

image.setAttribute(src ,this.result)

}

}

/脚本

/body

/html

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我们。

js实现上传图片功能的方法,js实现上传图片功能命令