JavaScript 实现图片上传前本地预览
JavaScript 实现图片上传前本地预览
图片上传前预览,应该算是一个普遍的需求,很多时候可能选中的图片并不是想要的那张,所以需要上传前预览下。
JS(浏览器中)是一门特殊的语言,它没有直接读写磁盘文件的权限,想要操作文件还得配合 <input type="file"/>
标签,而且通过这个标签获得的 File
对象是只读的,同时也无法获取到此文件所在的路径。那么,该如何显示预览呢?
1. 思路
直接显示路径不行,那就将图片转化成 data URL 或者说 Base64
2. 代码实现
因为使用原生 JS 操作 DOM 过于麻烦,以下示例使用 Vue
,但是思路和方法是一样的!
html 部分示例:
<input type="file" @change="fileChange"/>
<img v-if="imgUrl" :src="imgUrl" alt=""/>
script 部分示例:
fileChange(e) {// 选中的文件列表,如果设置了多选,length 可能会大于 1const fileList = e.target.files;if (fileList.length === 0) {this.imgUrl = '';return;}const file = fileList[0];// 使用 FileReader 读取文件对象const reader = new FileReader();// 读取完毕后获取结果reader.onload = event => {this.imgUrl = event.target.result;};// 把文件对象作为一个 dataURL 读入reader.readAsDataURL(file);
}
效果展示:
欢迎转载,转载请注明出处:https://blog.kaguramea.me/archives/js-image-preview
JavaScript 实现图片上传前本地预览相关推荐
- iOS学习:调用相机,选择图片上传,带预览功能
iOS学习:调用相机,选择图片上传,带预览功能 发表于2年前(2013-05-30 21:38) 阅读( 18194) | 评论( 16) 27人收藏此文章,我要收藏 赞3 8月22日珠海 OSC ...
- 在BAE搭建的Django中实现图片上传并用jquery预览图片
在BAE上搭建好了django,如何实现图片上传并预览呢? 想要实现图片上传并不难,但是想看到刚上传的图片,就得在服务器返回上传后图片的url.可是返回数据的话,网页就会重定向.因此想要在上传页面预览 ...
- jquery插件:图片上传按比例预览
js部分是这样的: //**********************图片上传预览插件************************ //作者:IDDQD(2009-07-01) //Email:id ...
- java实现文件上传预览_jsp+springmvc实现文件上传、图片上传和及时预览图片
1.多文件上传:http://blog.csdn.net/a1314517love/article/details/24183273 2.单文件上传的简单示例:http://blog.csdn.net ...
- 图片上传并且支持预览
首先这里先讲一个比较low的 <input type="file" id="file1" οnchange="preview1()"/ ...
- input文件框选择本地图片后页面预览图片并获取图片长宽以及大小 图片上传前预览
前面有转过一篇通过HTML5来实现图片上传前预览 ,现在借助FileReader也实现了这个需求.并且同时还可以获得图片的长宽相素以及图片文件的大小.demo如下: <html> < ...
- html之file标签 --- 图片上传前预览 -- FileReader
记得以前做网站时,曾经需要实现一个图片上传到服务器前,先预览的功能.当时用html的<input type="file"/>标签一直实现不了,最后舍弃了这个标签,使用了 ...
- webuploader结合php实现图片上传到本地和保存数据库
webuploader结合php实现图片上传到本地和保存数据库,核心功能是以下三点: 一.上传前图片预览 二.上传图片到本地文件夹 三.上传图片路径和图片对应的设备编号到mysql数据库 Webupl ...
- 2016/4/19 ①单个文件上传 ②上传图片后 预览图片
1,f1.php <!DOCTYPE html> <htmllang="en"> <head><metacharset="UTF ...
最新文章
- 编程方式刷新Squid缓存服务器的五种方法
- TP-LINK821N无线网卡拆解分析
- php 对象转换成数组,PHP把对象转换为数组的问题
- 对于 AttributeError: 'Series' object has no attribute 'sort'的解决办法
- 第三周 分队列 mooc 翁恺 c语言
- Java:Spring的IOC原理(大白话解释)
- ICRA 2021| 基于精确和减少漂移的关注距离的Camera-IMU-UWB融合定位方法
- 第二十九节 MT-iBeacon基站关于LightBlue软件的使用
- 几种不同格式的json数据及解析
- 当刷机工具遇到SetupConnection时的解决方法
- 测试知识总结1 —— 测试的分类
- python定义接口的关键字_使用*args和**kws指定关键字参数
- 如何充分利用点赞功能提升Linkedin账号曝光率和活跃度
- 局域网内即时通信软件 ZSCQ -工作进度记录表
- 知名爆料者:新款MacBook Air采用类似iMac的多彩设计
- 四川高中计算机大赛官网,四川省教育厅关于公布2018年度四川省中小学电脑制作活动评选结果的通知...
- cisco 交换机 获取 转发表_思科交换机端口号、终端IP地址和MAC地址的互查
- 06oracle视图与物化视图
- usb转串口,232电平,TTL电平
- c 语言easyx图形库飞机大战的源码
热门文章
- [安卓]安装低版本微信
- 曾国藩:从30岁起,脱胎换骨
- jenkins docker 编译verify出现crash的问题
- C语言小游戏->井字棋
- SVN提交成功,但是版本库里面的内容没有更新--解决方案
- 12月30日goCom社区OSGi Topic大纲和PPT
- 【参赛作品78】参加openGauss课程21天学习有感
- 老人与海好词100英文带翻译_The_Old_Man_and_The_Sea_老人与海_中英文对照版_(good)
- 大数据学前准备--zookeeper详解与集群搭建(保姆级教程)
- 我爱粟裕--与针式PKM的注册用户的QQ对话系列[2]