使用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 相关文章推荐
纯CSS改变webkit内核浏览器的滚动条样式
Apr 17 HTML / CSS
CSS3中box-shadow的用法介绍
Jul 15 HTML / CSS
CSS3过渡transition效果实例介绍
May 03 HTML / CSS
CSS3的 fit-content实现水平居中
Sep 07 HTML / CSS
CSS3下的渐变文字效果实现示例
Mar 02 HTML / CSS
CSS3贝塞尔曲线示例:创建链接悬停动画效果
Nov 19 HTML / CSS
html5使用Canvas绘图的使用方法
Nov 21 HTML / CSS
HTML5中微数据概述及在搜索引擎中的使用举例
Feb 07 HTML / CSS
HTML5新增元素如何兼容旧浏览器有哪些方法
May 09 HTML / CSS
HTML5操作WebSQL数据库的实例代码
Aug 26 HTML / CSS
浅谈html5与APP混合开发遇到的问题总结
Mar 20 HTML / CSS
使用CSS实现黑白格背景效果
Jun 01 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
实用函数5
2007/11/08 PHP
php设计模式 FlyWeight (享元模式)
2011/06/26 PHP
PHP 简易输出CSV表格文件的方法详解
2013/06/20 PHP
PHP实现根据密码长度显示安全条
2017/07/04 PHP
PHP-FPM和Nginx的通信机制详解
2019/02/01 PHP
PHP实现创建一个RPC服务操作示例
2020/02/23 PHP
JavaScript 继承详解(三)
2009/07/13 Javascript
JS中产生20位随机数以0-9为例也可以是a-z A-Z
2014/08/01 Javascript
轻松创建nodejs服务器(10):处理POST请求
2014/12/18 NodeJs
jQuery实现输入框下拉列表树插件特效代码分享
2015/08/27 Javascript
基于JavaScript代码实现pc与手机之间的跳转
2015/12/23 Javascript
简单分析javascript中的函数
2016/09/10 Javascript
jquery.validate表单验证插件使用详解
2017/06/21 jQuery
vue写一个组件
2018/04/09 Javascript
vue移动端屏幕适配详解
2019/04/30 Javascript
JavaScript数组排序功能简单实现
2020/05/14 Javascript
Python操作列表的常用方法分享
2014/02/13 Python
Ruby使用eventmachine为HTTP服务器添加文件下载功能
2016/04/20 Python
Python标准库之itertools库的使用方法
2017/09/07 Python
Python进程间通信之共享内存详解
2017/10/30 Python
django 按时间范围查询数据库实例代码
2018/02/11 Python
python 时间信息“2018-02-04 18:23:35“ 解析成字典形式的结果代码详解
2018/04/19 Python
python实现定时发送qq消息
2019/01/18 Python
75条笑死人的知乎神回复,用60行代码就爬完了
2019/05/06 Python
使用matplotlib动态刷新指定曲线实例
2020/04/23 Python
Python实现图片查找轮廓、多边形拟合、最小外接矩形代码
2020/07/14 Python
Python模拟登录requests.Session应用详解
2020/11/17 Python
耐克巴西官方网站:Nike巴西
2016/08/14 全球购物
Brora官网:英国领先的羊绒服装品牌
2019/08/28 全球购物
美国最大和最受信任的二手轮胎商店:Bestusedtires.com
2020/06/02 全球购物
实习单位推荐信范文
2013/11/27 职场文书
求职信范文怎么写
2014/01/29 职场文书
民用住房租房协议书
2014/10/29 职场文书
2015年社区计生工作总结
2015/04/21 职场文书
html+css实现赛博朋克风格按钮
2021/05/26 HTML / CSS
Java工作中实用的代码优化技巧分享
2022/04/21 Java/Android