基于JavaScript FileReader上传图片显示本地链接


Posted in Javascript onMay 27, 2016

简介

使用FileReader对象,web应用程序可以异步的读取存储在用户计算机上的文件(或者原始数据缓冲)内容,可以使用File对象或者Blob对象来指定所要处理的文件或数据.其中File对象可以是来自用户在一个<input type="text" />元素上选择文件后返回的FileList对象,也可以来自拖放操作生成的 DataTransfer对象,还可以是来自在一个HTMLCanvasElement上执行mozGetAsFile()方法后的返回结果.

基于JavaScript FileReader上传图片显示本地链接

基于JavaScript FileReader上传图片显示本地链接

页面中多个,上传多个图片DEMO代码

<!Doctype html>
<html>
 <head>
 <title>上传图片显示预览图</title>
 <style>
  #result img{
  height:100px;
  display:inline-block;
  margin-right:10px;
  margin-bottom:10px;
  }
 </style>
 </head>
 <body>
 <div class="add_imgs">
  <p> 
  <label>请选择一个图像文件:</label> 
  <input type="file" id="file_input" style="display:none;" /> 
  </p> 
  <div id="result">
  <a href="javascript:void(0);" class="add_img_btn">添加图片</a>
  </div> 
 </div>
 <div class="add_imgs">
  <p> 
  <label>请选择一个图像文件:</label> 
  <input type="file" id="file_input" style="display:none;" /> 
  </p> 
  <div id="result">
  <a href="javascript:void(0);" class="add_img_btn">添加图片</a>
  </div> 
 </div>
 <script src="jquery-2.2.1.min.js"></script>
 <script>
  $(".add_img_btn").unbind("click").on("click",function(){
  $(this).parents(".add_imgs").find("input[type=file]").click();
  var result = $(this).parent(); 
  var input = $(this).parents(".add_imgs").find("input[type=file]");
  dads(result,input);
  })
  
  
  function dads(result,input){
  if(typeof FileReader==='undefined'){ 
   result.innerHTML = "抱歉,你的浏览器不支持 FileReader"; 
   input.setAttribute('disabled','disabled'); 
  }else{ 
   $(input).unbind("change").on("change",function(){
   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).append('<img src="'+this.result+'" alt="" />'); 
   } 
   })
  } 
  }
 </script>
 </body>
</html>

以上就是本文的全部内容,希望对大家学习JavaScript程序设计有所帮助。

Javascript 相关文章推荐
javascript下阻止表单重复提交、防刷新、防后退
Aug 17 Javascript
javascript options属性集合操作代码
Dec 28 Javascript
快速学习jQuery插件 Form表单插件使用方法
Dec 01 Javascript
解决js页面滚动效果scrollTop在FireFox与Chrome浏览器间的兼容问题的方法
Dec 03 Javascript
js格式化时间的方法
Dec 18 Javascript
Bootstrap Metronic完全响应式管理模板学习笔记
Jul 08 Javascript
jQuery简单创建节点的方法
Sep 09 Javascript
微信小程序实现图片预加载组件
Jan 18 Javascript
JavaScript基础之AJAX简单的小demo
Jan 29 Javascript
ES6正则表达式扩展笔记
Jul 25 Javascript
vue绑定class与行间样式style详解
Aug 16 Javascript
vue实现Excel文件的上传与下载功能的两种方式
Jun 28 Javascript
Dojo获取下拉框的文本和值实例代码
May 27 #Javascript
jQuery+Ajax+PHP弹出层异步登录效果(附源码下载)
May 27 #Javascript
js基于cookie方式记住返回页面用法示例
May 27 #Javascript
js获取客户端操作系统类型的方法【测试可用】
May 27 #Javascript
jQuery自定义图片缩放拖拽插件imageQ实现方法(附demo源码下载)
May 27 #Javascript
JS集成fckeditor及判断内容是否为空的方法
May 27 #Javascript
js实现div模拟模态对话框展现URL内容
May 27 #Javascript
You might like
PHP与C#分别格式化文件大小的代码
2011/05/14 PHP
php定时删除文件夹下文件(清理缓存文件)
2013/01/23 PHP
PHP合并静态文件详解
2014/11/14 PHP
php实现的操作excel类详解
2016/01/15 PHP
PHP利用正则表达式将相对路径转成绝对路径的方法示例
2017/02/28 PHP
7款风格新颖的jQuery/CSS3菜单导航分享
2013/04/23 Javascript
JS自动适应的图片弹窗实例
2013/06/29 Javascript
javascript中数组中求最大值示例代码
2013/12/18 Javascript
jquery统计输入文字的个数并对其进行判断
2014/01/07 Javascript
JS实现简单的图书馆享元模式实例
2015/06/30 Javascript
jquery实现模拟百分比进度条渐变效果代码
2015/10/29 Javascript
详解数组Array.sort()排序的方法
2020/05/09 Javascript
JavaScript反射与依赖注入实例详解
2018/05/29 Javascript
JS实现计算小于非负数n的素数的数量算法示例
2019/02/26 Javascript
vue自动路由-单页面项目(非build时构建)
2019/04/30 Javascript
微信小程序简单的canvas裁剪图片功能详解
2019/07/12 Javascript
通过GASP让vue实现动态效果实例代码详解
2019/11/24 Javascript
Javascript前端下载后台传来的文件流代码实例
2020/08/18 Javascript
[01:20]辉夜杯背景故事宣传片《辉夜传说》
2015/12/25 DOTA
[42:32]Secret vs Optic 2018国际邀请赛小组赛BO2 第二场 8.18
2018/08/19 DOTA
Python与Java间Socket通信实例代码
2017/03/06 Python
Python通过future处理并发问题
2017/10/17 Python
Python 3.8新特征之asyncio REPL
2019/05/28 Python
浅析Python与Mongodb数据库之间的操作方法
2019/07/01 Python
发现两个有趣的CSS3动画效果
2013/08/14 HTML / CSS
推荐WEB开发者最佳HTML5和CSS3代码生成器
2015/11/24 HTML / CSS
会计专业应届生求职信
2013/11/24 职场文书
敬老模范事迹
2014/05/21 职场文书
爱国口号
2014/06/19 职场文书
政府四风问题整改措施
2014/10/04 职场文书
2014年政风行风评议工作总结
2014/10/21 职场文书
2014年数学教师工作总结
2014/12/03 职场文书
解除租房协议书
2014/12/03 职场文书
特岗教师个人总结
2015/02/10 职场文书
2015年创先争优工作总结
2015/05/23 职场文书
如何利用python实现列表嵌套字典取值
2022/06/10 Python