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

2016-02-19 10:40 499 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

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

延伸阅读
标签: 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开发
 一、基本概念 什么是Canvas canvas 是一个新的 HTML 元素,这个元素在 HTML5  中被定义。这个元素通常可以被用来在 HTML 页面中通过 JavaScript 进行绘制图形、合成图像等等操作,也可以用来做一些动画。当然,目前 HTML5 规范还在草稿阶段,正式发布也许要等到2010年,不...
标签: Web开发
HTML 5 也被称为 Web Applications 1.0。为了实现这个目标,增加了几个为 Web 页面提供交互体验的新元素: details datagrid menu command 这些元素都可以根据用户的操作和选择改变显示的内容,而不需要从服务器装载新页面。  details details 元素表示在默认情况下可能不显示的详细信息。可选的 ...
标签: Web开发
如果想使用该api,必须保证服务器端配置相应的mime类型。 拿tomcat为例,在打开Tomcat 6.0\conf\web.xml文件,在文件的最后面添加如下内容 代码如下: mime-mapping extensionmanifest/extension mime-typetext/cache-manifest/mime-type /mime-mapping 尤其注意,extension的value是manifest,所以以后配置缓存文件的后缀必须跟他一...
标签: Web开发
  HTML5带出了一系列新元素,并且将在未来被广泛应用。然而,有一些元素在使用时易被混淆,包括以下两个新元素:article和section。 最常被问起的问题是:在什么情况下我们应该使用这些元素?以及我们应该如何正确的使用这些元素? Section元素 这 是一个最容易产生歧义的元素。它与div元素有什么区别?我们一直在用div来划分段落,...

经验教程

599

收藏

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