一、原理
分为两步:
当上传图片的input被触发并选择本地图片之后获取要上传的图片这个对象的url(对象url);
把对象url赋值给事先写好的img标签的src属性即可把图片显示出来。
在这里,我们需要了解javascript里file对象、blob对象和window.url.createobjecturl()方法。
1、file对象
file对象可以用来获取某个文件的信息,还可以用来读取这个文件的内容.通常情况下,file对象是来自用户在一个input元素上选择文件后返回的filelist对象,也可以是来自由拖放操作生成的 datatransfer对象.
下面来看获取filelist对象:
2、blob对象
一个blob对象就是一个包含有只读原始数据的类文件对象.blob对象中的数据并不一定得是javascript中的原生形式.file接口基于blob,继承了blob的功能,并且扩展支持了用户计算机上的本地文件.
我们想要得到的对象url实际上就是从blob这个对象获取的,因为file的接口继承blob。下面就来把blob对象转换成url:
一个比较完整的实例
html5 upload
二、兼容性
•上述方法适用于chrome浏览器 •如果是ie浏览器可以直接使用input的value来代替src •网上查看资料有直接使用file对象的getasdataurl()方法获取url的,现在这个方法都已经废除,类似的还有getastext()和getasbinary()方法;以上就是本文的全部内容,希望对大家的学习有所帮助。
