思路:
1. 监听input[type=file]的变化,一旦触发则开启显示事件。
2. 读取file对象,检查类型。
3. 新建image节点,添加到展示区域
4. 新建FileReader对象,读取图片文件并将其添加到image的src
|
|
|
|
以上方法兼容Chrome、火狐、IE edge及IE10。IE10以下并不兼容,以下为兼容版本。
|
|
有一个问题:为什么不能直接将imgInput的value值赋给展示区域imgPreview的src属性呢?
答:当我们通过input上传图片时,因为浏览器的沙箱机制,将可能包含敏感信息的真实图片路径给隐藏了起来,例如用”c:/fakepath/a.png”代替原路径,因此此时inputd的value值并不能正确连接到图片文件。而通过IE的滤镜、FileReader、Blob都可以获取图片的真实路径,只是实现方法不一样。