前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >如何预览要上传的图片?

如何预览要上传的图片?

作者头像
高一峰
发布2020-09-22 10:29:46
1.8K0
发布2020-09-22 10:29:46
举报
文章被收录于专栏:高渡号外
(新手编程1001问-0004)

Q:上传图片时,如何实现图片预览?

A:昨天我们讨论了如何借助FormData通过Ajax上传文件。有同学留言谈到上传图片文件时,有时需要进行图片预览,这样能及时发现选择的图片文件是否正确,但是,不知道如何实现?

## 图片上传前预览真的那么重要吗?

$$ 哈哈,有些喜欢私藏图片的同学万一上传错了,那可真要出大事了!

## 嗯~,看来还真是蛮重要的。

OK,那我们今天就来介绍一下图片上传前如何实现预览功能。说实话,早起的网页和浏览器貌似还真不好解决这个问题,但是,自从HTML5以后,图片、音频、视频等对象都有了很好的解决方案。

为此,我需要用到 JanaScript 的FileReader()类(对象)。

FileReader()对象允许Web应用程序异步读取存储在用户计算机上的文件(或原始数据缓冲区)的内容。以下代码创建了一个 FileReader 的实例:

var myReader = new FileReader();

FileReader 包含4个用于读取文件的选项:

FileReader.readAsBinaryString(Blob | File):result属性将包含二进制字符串的 file/blob 的数据。每个字节由[0...255]范围内的整数表示。

FileReader.readAsText(Blob | File,opt_encoding):result属性将包含文本字符串的 file/blob 的数据。默认情况下,字符串被解码为"UTF-8"。使用可选的encoding参数可以指定不同的格式。

FileReader.readAsDataURL(Blob | File):result属性将包含编码为 data URL 的 file/blob 的数据。

FileReader.readAsArrayBuffer(Blob | File):result属性将包含作为 ArrayBuffer 对象的 file/blob 的数据。

这里,我们就是使用FileReader的FileReader.readAsDataURL(File)方法来实现图片预览的。

需要注意的是,Internet Explorer 10和11+,Mozilla FireFox,Google Chrome和Opera等浏览器都支持HTML5,都可以使用HTML5 FileReader API来显示图像预览。

下面我们提供一个应用案例:

(HTML页面选择要上传的图片文件)

(JS中使用FileReader实现图片预览代码)

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2019-11-28,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 高渡号外 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档