使用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中文字镂空、透明值、阴影效果设置示例小结
Mar 07 HTML / CSS
魔幻般冒泡背景的CSS3按钮动画
Feb 27 HTML / CSS
详解CSS3中nth-child与nth-of-type的区别
Jan 05 HTML / CSS
一款html5 canvas实现的图片玻璃碎片特效
Sep 11 HTML / CSS
HTML5不支持frameset的两种解决方法
Nov 14 HTML / CSS
使用phonegap操作数据库的实现方法
Mar 31 HTML / CSS
canvas环形倒计时组件的示例代码
Jun 14 HTML / CSS
Canvas系列之滤镜效果
Feb 12 HTML / CSS
Html5与App的通讯方式详解
Oct 24 HTML / CSS
HTML5触摸事件(touchstart、touchmove和touchend)的实现
May 08 HTML / CSS
深入理解margin塌陷和margin合并的解决方案
Jun 26 HTML / CSS
box-shadow单边阴影的实现
May 21 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
骨王战斗力在公会成员中排不进前五,却当选了会长,原因竟是这样
2020/03/02 日漫
PHP 获取文件权限函数介绍
2013/07/11 PHP
php发送html格式文本邮件的方法
2015/06/10 PHP
Zend Framework教程之模型Model基本规则和使用方法
2016/03/04 PHP
用js实现下载远程文件并保存在本地的脚本
2008/05/06 Javascript
jQuery用unbind方法去掉hover事件及其他方法介绍
2013/03/18 Javascript
ie下jquery.getJSON的缓存问题的处理方法
2013/03/29 Javascript
js中split函数的使用方法说明
2013/12/26 Javascript
jQuery()方法的第二个参数详解
2015/04/29 Javascript
js实现搜索框关键字智能匹配代码
2020/03/26 Javascript
AngularJS双向绑定和依赖反转实例详解
2017/04/15 Javascript
p5.js入门教程之图片加载
2018/03/20 Javascript
AngularJS与BootStrap模仿百度分页的示例代码
2018/05/23 Javascript
如何解决React官方脚手架不支持Less的问题(小结)
2018/09/12 Javascript
iView-admin 动态路由问题的解决方法
2018/10/03 Javascript
JavaScript ECMA-262-3 深入解析(一):执行上下文实例分析
2020/04/25 Javascript
js实现网页随机验证码
2020/10/19 Javascript
react项目从新建到部署的实现示例
2021/02/19 Javascript
Python多进程并发与多线程并发编程实例总结
2018/02/08 Python
Python访问MongoDB,并且转换成Dataframe的方法
2018/10/15 Python
Python3之手动创建迭代器的实例代码
2019/05/22 Python
python numpy实现文件存取的示例代码
2019/05/26 Python
Python操作多维数组输出和矩阵运算示例
2019/11/28 Python
HTML5和以前HTML4的区别整理
2013/10/20 HTML / CSS
Abe’s of Maine:自1979以来销售相机和电子产品
2016/11/21 全球购物
Vans英国官方网站:美国南加州的原创极限运动潮牌
2017/01/20 全球购物
一道写SQL的面试题和答案
2013/11/19 面试题
银行实习生的自我评价
2014/01/13 职场文书
优秀大学生的自我评价
2014/01/16 职场文书
英语课前三分钟演讲稿(6篇)
2014/09/13 职场文书
校园会短篇的广播稿
2014/10/21 职场文书
自主招生自荐信范文
2015/03/04 职场文书
中秋节祝酒词
2015/08/12 职场文书
2016教师国培研修感言
2015/12/08 职场文书
redis连接被拒绝的解决方案
2021/04/12 Redis
如何搭建 MySQL 高可用高性能集群
2021/06/21 MySQL