使用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 相关文章推荐
HTML+CSS3 模仿Windows7 桌面效果
Jun 17 HTML / CSS
CSS实现定位元素居中的方法
Jun 23 HTML / CSS
CSS3对背景图片的裁剪及尺寸和位置的设定方法
Mar 07 HTML / CSS
CSS3利用text-shadow属性实现多种效果的文字样式展现方法
Aug 25 HTML / CSS
利用纯CSS3实现动态的自行车特效源码
Jan 20 HTML / CSS
通过css3的filter滤镜改变png图片的颜色的示例代码
May 06 HTML / CSS
HTML5 embed 标签使用方法介绍
Aug 13 HTML / CSS
一个不错的HTML5 Canvas多层点击事件监听实例
Apr 29 HTML / CSS
5 个强大的HTML5 API 函数推荐
Nov 19 HTML / CSS
如何用canvas实现在线签名的示例代码
Jul 10 HTML / CSS
详解webapp页面滚动卡顿的解决办法
Dec 26 HTML / CSS
详解HTML5如何使用可选样式表为网站或应用添加黑暗模式
Apr 07 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年4月放送决定!第2期TV动画《邪神酱飞踢》视觉图&主题曲情报公开!
2020/03/06 日漫
PHP has encountered an Access Violation 错误的解决方法
2010/01/17 PHP
php输出xml必须header的解决方法
2014/10/17 PHP
示例详解Laravel重置密码代码重构
2016/08/10 PHP
PHP中in_array函数使用的问题与解决办法
2016/09/11 PHP
php实现获取近几日、月时间示例
2019/07/06 PHP
javascript作用域容易记错的两个地方分析
2012/06/22 Javascript
异步javascript的原理和实现技巧介绍
2012/11/08 Javascript
使用 js+正则表达式为关键词添加链接
2014/11/11 Javascript
使用AngularJS对路由进行安全性处理的方法
2015/06/18 Javascript
SpringMVC框架下JQuery传递并解析Json格式的数据是如何实现的
2015/12/10 Javascript
jQuery选择器用法实例详解
2015/12/17 Javascript
总结javascript中的六种迭代器
2016/08/16 Javascript
JS生成和下载二维码的代码
2016/12/07 Javascript
vue.js 1.x与2.0中js实时监听input值的变化
2017/03/15 Javascript
详解Vue基于 Nuxt.js 实现服务端渲染(SSR)
2018/04/05 Javascript
vue项目中axios请求网络接口封装的示例代码
2018/12/18 Javascript
JS实现选项卡效果的代码实例
2019/05/20 Javascript
小程序识别身份证,银行卡,营业执照,驾照的实现
2019/11/05 Javascript
[51:26]DOTA2上海特级锦标赛主赛事日 - 2 胜者组第一轮#3Secret VS OG第二局
2016/03/03 DOTA
Python学习笔记(一)(基础入门之环境搭建)
2014/06/05 Python
python私有属性和方法实例分析
2015/01/15 Python
仅用500行Python代码实现一个英文解析器的教程
2015/04/02 Python
Python新手在作用域方面经常容易碰到的问题
2015/04/03 Python
python常见排序算法基础教程
2017/04/13 Python
Python匿名函数/排序函数/过滤函数/映射函数/递归/二分法
2019/06/05 Python
Python + Flask 实现简单的验证码系统
2019/10/01 Python
python实现的汉诺塔算法示例
2019/10/23 Python
python实现快递价格查询系统
2020/03/03 Python
python线性插值解析
2020/07/05 Python
python 绘制正态曲线的示例
2020/09/24 Python
Yahoo-PHP面试题2
2014/12/06 面试题
公司领导班子群众路线四风问题对照检查材料
2014/10/02 职场文书
客户付款通知书
2015/04/23 职场文书
班干部竞选演讲稿(精选5篇)
2019/09/24 职场文书
php 原生分页
2021/04/01 PHP