Loading [MathJax]/jax/input/TeX/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >如何预览要上传的图片?

如何预览要上传的图片?

作者头像
高一峰
发布于 2020-09-22 02:29:46
发布于 2020-09-22 02:29:46
2K0
举报
文章被收录于专栏:高渡号外高渡号外
(新手编程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 删除。

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

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
面试题:我现在上传图片的时候提前预览到图片怎么办?
今天我也来标题党一会,用“面试题”蹭一蹭热度,主要还行想深度剖析一下,文件上传,里面的门道。
用户7413032
2020/06/11
1.6K0
面试题:我现在上传图片的时候提前预览到图片怎么办?
【前端知乎】443- ArrayBuffer 与 Blob 对象详解
ArrayBuffer 对象是 ES6 才纳入正式 ECMAScript 规范,是 JavaScript 操作二进制数据的一个接口。ArrayBuffer 对象是以数组的语法处理二进制数据,也称二进制数组。
pingan8787
2019/12/24
1.9K0
【前端知乎】443- ArrayBuffer 与 Blob 对象详解
【前端知乎系列】ArrayBuffer 和 Blob 对象
ArrayBuffer 对象与 Blob 对象大家或许不太陌生,常见于文件上传操作处理(如处理图片上传预览等问题)。
pingan8787
2019/12/16
2.2K0
【前端知乎系列】ArrayBuffer 和 Blob 对象
前端读取Excel报表文件
在实际开发中,经常会遇到导入Excel文件的需求,有的产品人想法更多,想要在前端直接判断文件内容格式是否正确,必填项是否已填写
书童小二
2018/09/03
4.5K0
前端读取Excel报表文件
HTML5 FileReader 读取txt文件
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/j_bleach/article/details/53574789
j_bleach
2019/05/26
8.3K0
JS魔法堂之实战:纯前端的图片预览
一、前言                                   图片上传是一个普通不过的功能,而图片预览就是就是上传功能中必不可少的子功能了。在这之前,我曾经通过订阅input[type=file]元素的onchange事件,一旦更改路径则将图片上传至服务器,接着就获取图片路径并赋值到img元素上。先不管文件异步提交的解决方案,就是服务端清理那些临时的预览图片已经增加不少工作量了。   偶然从MDN上找到纯前端图片预览的相关资料,经过整理后记录下来以便日后查阅。 二、准备功夫1──FileRe
^_^肥仔John
2018/01/18
2.5K0
【前端知乎】445- File FileList 和 FileReader 对象详解
File 对象、FileList 对象与 FileReader 对象大家或许不太陌生,常见于文件上传下载操作处理(如处理图片上传预览,读取文件内容,监控文件上传进度等问题)。
pingan8787
2019/12/24
1.7K0
【前端知乎】445- File FileList 和 FileReader 对象详解
浅谈h5文件上传
近期的需求中包含了上传头图(图片)和上传菜品(excel文件)的功能,商家可灵活上传使用自己制作的问卷图片,用户评价上传的菜品。
江米小枣
2020/06/16
2.9K0
浅谈h5文件上传
html之file标签 --- 图片上传前预览 -- FileReader
记得以前做网站时,曾经需要实现一个图片上传到服务器前,先预览的功能。当时用html的<input type="file"/>标签一直实现不了,最后舍弃了这个标签,使用了其他方式来实现了这个功能。
tandaxia
2018/09/27
5K1
html之file标签 --- 图片上传前预览 -- FileReader
input file读取文件
主要使用readAsDataURL去完成转换base64,如果是文档,也可以用readAsText(file,encoding)去读取。
全栈程序员站长
2022/09/09
2.5K0
Html5 学习系列(四)文件操作API
    在之前我们操作本地文件都是使用flash、silverlight或者第三方的activeX插件等技术,由于使用了这些技术后就很难进行跨平台、或者跨浏览器、跨设备等情况下实现统一的表现,从另外一个角度来说就是让我们的web应用依赖了第三方的插件,而不是很独立,不够通用。在HTML5标准中,默认提供了操作文件的API让这一切直接标准化。有了操作文件的API,让我们的Web应用可以很轻松的通过JS来控制文件的读取、写入、文件夹、文件等一系列的操作,让Web应用不再那么蹩脚,而之前Web应用如果不借助第三方插件,那就是个shit!但是最新的标准中大部分浏览器都已经实现了文件的读取API,文件的写入,文件和文件夹的最新的标准刚制定完毕,相信后面随着浏览器的升级这些功能肯定会实现的非常好,接下来我主要给大家介绍文件读取的几个API。
老马
2022/05/10
6470
HTML5 FileReader接口学习笔记
1、FileReader概述 FileReader 对象允许Web应用程序异步读取存储在用户计算机上的文件(或原始数据缓冲区)的内容,使用 File 或 Blob 对象指定要读取的文件或数据。 其中File对象可以是来自用户在一个<input>元素上选择文件后返回的FileList对象,也可以来自拖放操作生成的DataTransfer对象,还可以是来自在一个HTMLCanvasElement上执行mozGetAsFile()方法后返回结果。 2、FileReader接口方法 方法名 参数 描述 r
就只是小茗
2018/03/07
9460
从图片裁剪来聊聊前端二进制
首先判断window.navigator.msSaveOrOpenBlob是为了兼容IE(谁要兼容这 xxIE!!)
前端森林
2020/08/21
1.7K0
从图片裁剪来聊聊前端二进制
聊聊JS的二进制家族:Blob、ArrayBuffer和Buffer
事实上,前端很少涉及对二进制数据的处理,但即便如此,我们偶尔总能在角落里看见它们的身影。
啦啦啦321
2019/12/19
8K0
从web图片裁剪出发:了解H5中的Blob
刚开始做前端的时候,有个功能卡住我了,就是裁剪并上传头像。当时两个方案摆在我面前,一个是flash,我不会。另一个是通过iframe上传图片,然后再上传坐标由后端裁剪,而我最终的选择是后者。有人会疑惑,为什么不用H5的Canvas和FormData,第一要考虑ie8的兼容性,第二那时候眼界没到,这种新东西光是听听都怕。   后来随着Mobile项目越做越多,类似的功能开发得也越来越多,Canvas+FormData成为了标配方案。但做的多了却一直没有静下心来研究,浏览器怎么使用H5的方式裁剪并把文件发送出去
李海彬
2018/03/27
2.2K0
从web图片裁剪出发:了解H5中的Blob
我悟了!原来本地图片预览还能这样搞
在网页开发中,经常会遇到需要让用户上传图片并在上传前进行预览的需求。这样做的好处显而易见:用户可以立即看到自己选择的图片是否正确,避免了不必要的上传和服务器资源浪费,提升了用户体验。
沉浸式趣谈
2025/02/19
1790
我悟了!原来本地图片预览还能这样搞
手把手教你前端本地文件操作与上传
前端无法像原生APP一样直接操作本地文件,否则的话打开个网页就能把用户电脑上的文件偷光了,所以需要通过用户触发,用户可通过以下三种方式操作触发: 通过input type=”file” 选择本地文件 通过拖拽的方式把文件拖过来 在编辑框里面复制粘贴 第一种是最常用的手段,通常还会自定义一个按钮,然后盖在它上面,因为type=”file”的input不好改变样式。如下代码写一个选择控件,并放在form里面: 然后就可以用FormData获取整个表单的内容: $("#file-input").on("chang
企鹅号小编
2018/03/01
2K0
手把手教你前端本地文件操作与上传
前端本地文件操作与上传
前端无法像原生APP一样直接操作本地文件,否则的话打开个网页就能把用户电脑上的文件偷光了,所以需要通过用户触发,用户可通过以下三种方式操作触发:
IT派
2018/08/10
1.7K0
前端本地文件操作与上传
HTML5中的拖放功能
每天学习编程,让你离梦想更新一步,感谢不负每一份热爱编程的程序员,不论知识点多么奇葩,和我一起,让那一颗四处流荡的心定下来,一直走下去,加油,2021加油!欢迎关注加我vx:xiaoda0423,欢迎点赞、收藏和评论
达达前端
2021/02/02
3K0
图片上传预览插件制作思路及Demo分享
一旦选择的路径被改变就把图片上传至服务器,然后就返回图片在服务器端的地址,并且赋值到img元素上。
winty
2019/12/26
1.4K0
相关推荐
面试题:我现在上传图片的时候提前预览到图片怎么办?
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档