使用HTML5的File实现base64和图片的互转


Posted in HTML / CSS onAugust 01, 2013

刚接触到一个内联图片的概念,内联图片即使把图片文件编码成base64 看下面代码即是内联问题

可以减少http的请求,缺点是不能跨域缓存!

复制代码
代码如下:

<img src="data:image/jpeg;base64,/9j/4QqsRX..." alt="">

然后在线如何把图片转化成base64

如果只依靠单纯的javascript是有权限问题的 js不允许操作本地的file文件或文件夹 为了安全问题

现在html5来了 百度了下有不少资料 中文的也不少 给下w3c的文档 http://www.w3.org/TR/FileAPI/

现在我们用html5的file api里的 readAsDataURL函数 这是一个把文件转化成base64编码的

复制代码
代码如下:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>简单的html5 File测试 for pic2base64</title>
<style>
</style>
<script>
window.onload = function(){
var input = document.getElementById("demo_input");
var result= document.getElementById("result");
var img_area = document.getElementById("img_area");
if ( typeof(FileReader) === 'undefined' ){
result.innerHTML = "抱歉,你的浏览器不支持 FileReader,请使用现代浏览器操作!";
input.setAttribute( 'disabled','disabled' );
} else {
input.addEventListener( 'change',readFile,false );}
}
function readFile(){
var file = this.files[0];
//这里我们判断下类型如果不是图片就返回 去掉就可以上传任意文件
if(!/image\/\w+/.test(file.type)){
alert("请确保文件为图像类型");
return false;
}
var reader = new FileReader();
reader.readAsDataURL(file);
reader.onload = function(e){
result.innerHTML = '<img src="'+this.result+'" alt=""/>';
img_area.innerHTML = '<div class="sitetip">图片img标签展示:</div><img src="'+this.result+'" alt=""/>';
}
}
</script>
</head>
<body>
<input type="file" value="sdgsdg" id="demo_input" />
<textarea id="result" rows=30 cols=300></textarea>
<p id="img_area"></p>
</body>
</html>
HTML / CSS 相关文章推荐
CSS3字体效果的设置方法小结
Jun 13 HTML / CSS
CSS3解决移动页面上点击链接触发色块的问题
Jun 03 HTML / CSS
HTML5之SVG 2D入门8—文档结构及相关元素总结
Jan 30 HTML / CSS
很酷的HTML5电子书翻页动画特效
Feb 25 HTML / CSS
Html5 web本地存储实例详解
Jul 28 HTML / CSS
html5中的一些标签学习(心得)
Oct 18 HTML / CSS
详解HTML5中表单验证的8种方法介绍
Dec 19 HTML / CSS
简述Html5 IphoneX 适配方法
Feb 08 HTML / CSS
html如何对span设置宽度
Oct 30 HTML / CSS
html5简介及新增功能介绍
May 18 HTML / CSS
HTML+css盒子模型案例(圆,半圆等)“border-radius” 简单易上手
May 10 HTML / CSS
小程序实现悬浮按钮的全过程记录
Oct 16 HTML / CSS
HTML5 中新的全局属性(整理)
Jul 31 #HTML / CSS
html5文字阴影效果text-shadow使用示例
Jul 25 #HTML / CSS
html5模拟平抛运动(模拟小球平抛运动过程)
Jul 25 #HTML / CSS
html5记忆翻牌游戏实现思路及代码
Jul 25 #HTML / CSS
html5 乒乓球(碰撞检测)实例二
Jul 25 #HTML / CSS
html5 迷宫游戏(碰撞检测)实例一
Jul 25 #HTML / CSS
html5弹跳球示例代码
Jul 23 #HTML / CSS
You might like
PHP与SQL注入攻击[一]
2007/04/17 PHP
PHP和XSS跨站攻击的防范
2007/04/17 PHP
php侧拉菜单 漂亮,可以向右或者向左展开,支持FF,IE
2009/10/15 PHP
WordPress中用于获取文章作者与分类信息的方法整理
2015/12/17 PHP
PHP+MySQL使用mysql_num_rows实现模糊查询图书信息功能
2018/05/31 PHP
php设计模式之装饰模式应用案例详解
2019/06/17 PHP
jquery 新手学习常见问题解决方法
2010/04/18 Javascript
图片无缝滚动代码(向左/向下/向上)
2013/04/10 Javascript
使用GruntJS构建Web程序之合并压缩篇
2014/06/06 Javascript
javascript bom是什么及bom和dom的区别
2015/11/26 Javascript
JS查找字符串中出现次数最多的字符
2016/09/05 Javascript
AngularJs篇:使用AngularJs打造一个简易权限系统的实现代码
2016/12/26 Javascript
vue使用vue-cli快速创建工程
2017/07/28 Javascript
Vue集成Iframe页面的方法示例
2017/12/12 Javascript
VUE 解决mode为history页面为空白的问题
2019/11/01 Javascript
vue实现的封装全局filter并统一管理操作示例
2020/02/02 Javascript
vue+Element中table表格实现可编辑(select下拉框)
2020/05/21 Javascript
Python的语言类型(详解)
2017/06/24 Python
python爬虫面试宝典(常见问题)
2018/03/02 Python
Python使用pip安装pySerial串口通讯模块
2018/04/20 Python
Python 实现的 Google 批量翻译功能
2019/08/26 Python
Python实现代码统计工具
2019/09/19 Python
基于python SMTP实现自动发送邮件教程解析
2020/06/02 Python
浅析NumPy 切片和索引
2020/09/02 Python
python 基于selectors库实现文件上传与下载
2020/12/31 Python
应用服务器有那些
2012/01/19 面试题
Java里面Pass by value和Pass by Reference是什么意思
2016/05/02 面试题
学习自我鉴定
2014/02/01 职场文书
八一建军节感言
2014/02/28 职场文书
反邪教警示教育方案
2014/05/13 职场文书
全国优秀教师事迹材料
2014/08/26 职场文书
中级会计大学生职业生涯规划书
2014/09/16 职场文书
交通事故委托书范本(2篇)
2014/09/21 职场文书
干部考察材料范文
2014/12/24 职场文书
2019年农民幸福观调查的实践感悟
2019/12/19 职场文书
python 提取html文本的方法
2021/05/20 Python