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

2016-02-19 10:40 504 1 收藏

今天图老师小编要向大家分享个使用HTML5的File实现base64和图片的互转教程,过程简单易学,相信聪明的你一定能轻松get!

【 tulaoshi.com - Web开发 】

刚接触到一个内联图片的概念,内联图片即使把图片文件编码成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标签展示:/divimg 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

来源:http://www.tulaoshi.com/n/20160219/1595439.html

延伸阅读
标签: Web开发
HTML 5 也被称为 Web Applications 1.0。为了实现这个目标,增加了几个为 Web 页面提供交互体验的新元素: details datagrid menu command 这些元素都可以根据用户的操作和选择改变显示的内容,而不需要从服务器装载新页面。  details details 元素表示在默认情况下可能不显示的详细信息。可选的 ...
标签: Web开发
复制代码代码如下: !DOCTYPE HTML html head meta charset="UTF-8" titleHTML5示例/title style type="text/css" #container{border:1px solid #ccc;width:800px;height:600px;position:relative;} canvas{position:absolute;top:0px;left:0px;z-index:1;} /style /head body select id="tools" option value="pen"铅笔/option op...
标签: Web开发
  HTML5带出了一系列新元素,并且将在未来被广泛应用。然而,有一些元素在使用时易被混淆,包括以下两个新元素:article和section。 最常被问起的问题是:在什么情况下我们应该使用这些元素?以及我们应该如何正确的使用这些元素? Section元素 这 是一个最容易产生歧义的元素。它与div元素有什么区别?我们一直在用div来划分段落,...
标签: Web开发
1.Email输入框,自动验证Email有效性。 代码如下: !DOCTYPE HTML html body form action="#" method="get" E-mail: input type="email" name="user_email"/ input type="submit"/ /form /body /html 2.number数字输入,验证正确,可以设置开始结束位。 代码如下: !DOCTYPE HTML html body form action="#" method="g...
标签: Web开发
视频已经在 Web 上广泛流行了,但是其格式几乎都是专有的。YouTube 使用 Flash,Microsoft 使用 Windows Media®,Apple 使用 QuickTime。在一种浏览器中用来嵌入这些内容的标记在另一种浏览器中是无效的。因此,WhatWG 提议引入一个新的 video 元素,用来嵌入任意视频格式。例如,可以用以下代码嵌入我的 QuickTime 电影 a Sora in Pro...

经验教程

806

收藏

22
微博分享 QQ分享 QQ空间 手机页面 收藏网站 回到头部