• html5读取本地文件,图片预览


    这里只是写了方法的原型,可以根据需求设置上传的类型,大小。可能有不足的地方,希望大神指正!

    案例1,实现本地图片预览(单张),URL.createObjectURL(file)

    URL.createObjectURL()创建一个新的对象URL,该对象URL可以代表某一个指定的File对象或Blob对象.

    html代码

    <input type="file" id="changeMore">
    <div id="ImgCon"></div>

    js代码

     1 function changeM(){
     2         var inputJ = $("#changeMore"),
     3             input  = inputJ[0],
     4             Con    = $("#ImgCon");
     5 
     6         inputJ.change(function(e){
     7             var file     = e.target.files[0],//拿到原始对象
     8                 thisType = file.type,//获取到表面的名称,可判断文件类型
     9                 thisSize = file.size,//文件的大小
    10                 thisSrc  = URL.createObjectURL(file),//当前对象的地址
    11                 img      = $('<img>').attr('src',thisSrc);//创建img对象
    12 
    13                 //文件加载成功以后,渲染到页面
    14                 img.load(function(){
    15                     Con.append(img);
    16                     URL.revokeObjectURL(thisSrc);//释放内存
    17                 });
    18         });    
    19     }//
    20     changeM();

     案例2,实现本地图片预览(单张),FileReader()

      关于fileReader()的方法介绍

    <input type="file" id="changeMore">
    <div id="ImgCon"></div>

    js 代码

     1 function changeM(){
     2         var inputJ = $("#changeMore"),
     3             input  = inputJ[0],
     4             Con    = $("#ImgCon");
     5 
     6         inputJ.change(function(e){
     7             var file     = e.target.files[0],//拿到原始对象
     8                 thisType = file.type,//获取到表面的名称,可判断文件类型
     9                 thisSize = file.size,//文件的大小
    10                 reader   = new FileReader();
    11 
    12                 //readAsDataURL(file),读取文件,将文件以数据URL的形式保存在result的属性中
    13                 reader.readAsDataURL(file);
    14 
    15                 //文件加载成功以后,渲染到页面
    16                 reader.onload = function(e) {
    17                     var $img = $('<img>').attr("src", e.target.result);
    18                     Con.append($img)
    19                 }
    20         });    
    21 
    22     }//changeM end!
    23     changeM();

     案例3,实现本地图片预览(多张)

      方法和前两种一样,拿到的只不过是一个数组,原理都是一样的。

    <input type="file" id="changeMore" multiple="multiple">
    <div id="ImgCon"></div>

    js代码

     1 function changeM(){
     2         var inputJ = $("#changeMore"),
     3             input  = inputJ[0],
     4             Con    = $("#ImgCon");
     5 
     6         inputJ.change(function(e){
     7             var files     = e.target.files,//拿到file数组
     8                 thisSrc   = '';//当前的地址
     9 
    10             for(var i = 0; i < files.length; i++ ){
    11                 thisSrc = URL.createObjectURL(files[i]);
    12                 
    13                 //文件加载成功后渲染
    14                 $('<img>').attr('src',thisSrc).load(function(){
    15                     Con.append( this );
    16                     URL.revokeObjectURL(thisSrc);//释放内存
    17                 });
    18                 
    19             }
    20         });    
    21     }//
    22     changeM();
  • 相关阅读:
    oracle,sql server count函数 存储过程 判断 行数 注意事项
    js 跨域访问 获取验证码图片 获取header 自定义属性
    开发作中常用,实用工具推荐!
    phpcms
    php基础
    jQuery , js 写选项卡
    js, jquery实现全选,反选
    jQuery选择器
    学习jQuery
    javascript 与 java继承问题
  • 原文地址:https://www.cnblogs.com/xxyy1122/p/4745956.html
Copyright © 2020-2023  润新知