基于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 相关文章推荐
文字幻灯片
Jun 26 Javascript
jquery实现个人中心导航菜单效果和美观都非常不错
Sep 02 Javascript
微信小程序实战之轮播图(3)
Apr 17 Javascript
vue2项目使用sass的示例代码
Jun 28 Javascript
面包屑导航详解
Dec 07 Javascript
浅谈Webpack 持久化缓存实践
Mar 22 Javascript
jQuery实现图片上传预览效果功能完整实例【测试可用】
May 28 jQuery
vscode中vue-cli项目es-lint的配置方法
Jul 30 Javascript
js嵌套的数组扁平化:将多维数组变成一维数组以及push()与concat()区别的讲解
Jan 19 Javascript
JS使用正则表达式判断输入框失去焦点事件
Oct 16 Javascript
JS图片预加载三种实现方法解析
May 08 Javascript
如何利用js在两个html窗口间通信
Apr 27 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
我的论坛源代码(七)
2006/10/09 PHP
PHP操作xml代码
2010/06/17 PHP
PHP imagegrabscreen和imagegrabwindow(截取网站缩略图)的实例代码
2013/11/07 PHP
php读取3389的脚本
2014/05/06 PHP
php中get_object_vars()方法用法实例
2015/02/08 PHP
yii2利用自带UploadedFile实现上传图片的示例
2017/02/16 PHP
Laravel中Facade的加载过程与原理详解
2017/09/22 PHP
php中的explode()函数实例介绍
2019/01/18 PHP
Thinkphp 框架扩展之应用模式实现方法分析
2020/04/27 PHP
PHP rsa加密解密算法原理解析
2020/12/09 PHP
Javascript学习笔记6 prototype的提出
2010/01/11 Javascript
jQuery ReferenceError: $ is not defined 错误的处理办法
2013/05/10 Javascript
Javascript表格翻页效果实现思路及代码
2013/08/23 Javascript
Jquery实现自定义窗口随意的拖拽
2014/03/12 Javascript
微信小程序 Nginx环境配置详细介绍
2017/02/14 Javascript
js实现带进度条提示的多视频上传功能
2020/12/13 Javascript
javascript将非数值转换为数值
2018/09/13 Javascript
JS 实现获取验证码 倒计时功能
2018/10/29 Javascript
jquery拖拽自动排序插件使用方法详解
2020/07/20 jQuery
[53:03]Optic vs TNC 2018国际邀请赛小组赛BO2 第一场 8.17
2018/08/18 DOTA
编程语言Python的发展史
2014/09/26 Python
Python字符串特性及常用字符串方法的简单笔记
2016/01/04 Python
python中将函数赋值给变量时需要注意的一些问题
2017/08/18 Python
python中is与双等于号“==”的区别示例详解
2017/11/21 Python
[原创]windows下Anaconda的安装与配置正解(Anaconda入门教程)
2018/04/05 Python
python3+PyQt5实现自定义流体混合窗口部件
2018/04/24 Python
详解python异步编程之asyncio(百万并发)
2018/07/07 Python
python 列表转为字典的两个小方法(小结)
2019/06/28 Python
Python字符串查找基本操作代码案例
2020/10/27 Python
python源文件的字符编码知识点详解
2021/03/04 Python
详解通过变换矩阵实现canvas的缩放功能
2019/01/14 HTML / CSS
华为俄罗斯官方网上商城:购买Huawei手机和平板
2017/04/21 全球购物
领导失职检讨书
2014/02/24 职场文书
敬老院院长事迹材料
2014/05/21 职场文书
艾滋病宣传标语
2014/06/25 职场文书
vue3 自定义图片放大器效果的示例代码
2022/07/23 Vue.js