html5预览图片

1.Blob 本例子主要是使用HTML5 的File API,创建一個可存取到该file的url,一个空的img标签,ID为img0,把选择的文件显示在img标签中,实现图片预览功能。请选择支持HTML API的浏览器,好比谷歌Chrome和火狐等。  (原文连接: http://www.codefans.net/jscss/code/4688.shtml)css

 

<!DOCTYPE html>
<html>
<head>
<title>HTML5上传图片预览</title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<script src="http://www.codefans.net/ajaxjs/jquery-1.6.2.min.js"></script>
</head>
<body>
<h3>请选择图片文件:JPG/GIF</h3>
<form name="form0" id="form0" >
<input type="file" name="file0" id="file0" multiple="multiple" /><br><img src="" id="img0" >
</form>
<script>    
$("#file0").change(function(){
    var objUrl = getObjectURL(this.files[0]) ;
    console.log("objUrl = "+objUrl) ;
    if (objUrl) {
        $("#img0").attr("src", objUrl) ;
    }
}) ;
//创建一個可存取到該file的url
function getObjectURL(file) {
    var url = null ; 
    if (window.createObjectURL!=undefined) { // basic
        url = window.createObjectURL(file) ;
    } else if (window.URL!=undefined) { // mozilla(firefox)
        url = window.URL.createObjectURL(file) ;
    } else if (window.webkitURL!=undefined) { // webkit or chrome
        url = window.webkitURL.createObjectURL(file) ;
    }
    return url ;
}
</script>
</body>
</html>

2.  FileReader:读取本地图片生成二进制显示(原文连接:http://www.helloweba.com/view-blog-224.html)html

FileReader接口主要是将文件读入内存,并提供相应的方法,来读取文件中的数据,固然就能显示本地图片不需上传了。目前高级浏览器实现了FileReader接口jquery

     1.第一步建立html,咱们在页面中放置一个文件选择的input#file_input和一个显示结果的div#result。web

<p> 
   <label>请选择一个图像文件:</label> 
   <input type="file" id="file_input" /> 
</p>  
<div id="result"></div> 

  2.经过getElementById获取节点,判断浏览器的兼容性,对于不支持FileReader接口的浏览器将给出一个提示并禁用input,不然监听input的change事件。ajax

var result = document.getElementById("result"); 
var input = document.getElementById("file_input"); 
 
if(typeof FileReader==='undefined'){ 
    result.innerHTML = "抱歉,你的浏览器不支持 FileReader"; 
    input.setAttribute('disabled','disabled'); 
}else{ 
    input.addEventListener('change',readFile,false); 
} 

 

  3.当file_input的change事件触发时,调用函数readFile()。在readFile中,咱们首先获取file对象,而后经过file的 type属性来检测文件类型,咱们固然只容许选择图像类型的文件,而后咱们new一个FileReader实例,并调用readAsDataURL方法来 读取选中的图像文件,最后在onload事件中,获取到成功读取的文件内容,并以插入一个img节点的方式显示选中的图片。chrome

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=""/>' 
    } 
} 

  

FileReader的方法和事件

参数/事件 描述
方法
abort 中断读取
readAsText(file, [encoding]) 将文件读取为文本
该方法有两个参数,其中第二个参数是文本的编码方式,默认值为 UTF-8。这个方法很是容易理解,将文件以文本方式读取,读取的结果便是这个文本文件中的内容。
readAsBinaryString(file) 将文件读取二进制码
一般咱们将它传送到后端,后端能够经过这段字符串存储文件
readAsDataURL(file) 将文件读取为DataURL
将文件读取为一串Data URL字符串,将小文件以一种特殊格式的URL地址直接读入页面。小文件指图像与html等格式的文件。
事件
onabort 数据读取中断时触发
onerror 数据读取出错时触发
onloadstart 数据读取开始时触发
onload 数据读取成功完成时触发
onloadend 数据读取完成时触发,不管成功失败
相关文章
相关标签/搜索