纯前端实现 JS本地预览图片+JS转换base64

前端JS上传图片,并预览图片,免后端

HTML代码

<!-- 上传标签 -->
<input type="file" id="file"/>


<!-- 图片标签 - 用于预览 -->
<img id="previewImg"/>
JavaScript代码

// 根据ID获取file内容
var file = document.getElementById('file').files[0]

// 创建文件读取对象
var read = new FileReader()

// 读取成base64
var img64 = read.readAsDataURL(file)

// 赋值给图片即可
document.getElementById('previewImg').src = img64

// ts 函数
const getBase64 = (img: any, callback: any) => {
    const reader = new FileReader();
    reader.readAsDataURL(img);
    reader.addEventListener('load', () => callback(reader.result));
  };
  1. 样式问题自己调整即可,只是记录解决方案
  2. 关于File如何自定义样式,一般是将file 的padding-top放大,然后外层div固定高度再overflow,就看不到原始标签的"请上传文件"了,然后内部放一个标签自定义文字即可,当然file层级要在最上面。否则无法点击触发
  3. 关于老版本兼容,请参考链接中的onTry函数。(https://github.com/Pszz/CanvasFilter/blob/master/src/App.vue
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 第一部分 HTML&CSS整理答案 1. 什么是HTML5? 答:HTML5是最新的HTML标准。 注意:讲述HT...
    kismetajun阅读 28,021评论 1 45
  • 问答题47 /72 常见浏览器兼容性问题与解决方案? 参考答案 (1)浏览器兼容问题一:不同浏览器的标签默认的外补...
    _Yfling阅读 14,683评论 1 92
  • 概述 在网易云课堂学习李南江老师的《从零玩转HTML5前端+跨平台开发》时,所整理的笔记。笔记内容为根据个人需求所...
    墨荀阅读 6,938评论 0 7
  • day01­_起源和结构 结构:Xhtml xml 表现:CSS 行为:DOM ECMAScript 以上都属于W...
    Sakura_明妃阅读 4,979评论 0 1
  • 前端开发面试题 面试题目: 根据你的等级和职位的变化,入门级到专家级,广度和深度都会有所增加。 题目类型: 理论知...
    怡宝丶阅读 7,380评论 0 7