JavaScript html5利用FileReader实现上传功能


Posted in Javascript onMarch 27, 2020

本文实例为大家分享了H5利用FileReader上传文件的具体代码,供大家参考,具体内容如下

1. Html部分

<h2>文件上传演练</h2> 
 <div id="result"> 
 <!-- 这里用来显示读取结果 --> 
 <div id="inResult"> 
 <div id="inImgs"></div> 
 <div id="imgInfo"></div> 
 </div> 
 </div> 
 
 <input type="text" id="txtImgSrc" /><!--显示图片信息--> 
 <input type="button" id="btnRemove" /> 
 <button id="btnBrowse" onClick="onFile()">Browse...</button> 
 <input type="file" id="file_input" />

2. JS部分

<script type="text/javascript"> 
 var result = document.getElementById("result"); 
 var input = document.getElementById("file_input"); 
 var inResult = document.getElementById('inResult'); 
 
 if(typeof FileReader === 'undefined'){ 
 result.innerHTML = "抱歉,你的浏览器不支持 FileReader"; 
 input.setAttribute('disabled','disabled'); 
 }else{ 
 input.addEventListener('change',readFile,false); 
 } 
 function onFile(){ 
 document.getElementById('file_input').click(); //打开<input type="file" id="file_input" /> 
 }  
   
 function readFile(){ 
 var file = this.files[0]; 
 var fsize = parseInt((file.size)/1024); //计算图片大小,默认是B,转换成KB 
 if(!/image\/\w+/.test(file.type)){ 
  alert("请确保文件为图像类型"); 
  return false; 
 } 
 var reader = new FileReader(); 
 reader.readAsDataURL(file); 
  
 reader.onload = function(e){ 
  //alert(this.result); 
  inImgs.innerHTML = '<img src="'+this.result+'" alt="" width="198px" height="250px" id="img"/>'; //显示图片 
  var arr = input.value.split('\\'); //分割图片路径 
  document.getElementById('result').style.display="block"; 
  document.getElementById('txtImgSrc').value = arr[arr.length-1]; //取数组最后部分 - 图片名字.jpg 
  document.getElementById('imgInfo').innerHTML = arr[arr.length-1]+"<br/>("+fsize+"kb)"; //显示图片名字加图片大小 
  
 } 
 } 
</script>

3.图片测试

JavaScript html5利用FileReader实现上传功能

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
JS设置下拉列表框当前所选值的方法
Dec 22 Javascript
JavaScript操作class和style样式代码详解
Feb 13 Javascript
javascript与jquery动态创建html元素示例
Jul 25 Javascript
js实现添加可信站点、修改activex安全设置,禁用弹出窗口阻止程序
Aug 17 Javascript
jquery插入兄弟节点的操作方法
Dec 07 Javascript
JS 调用微信扫一扫功能
Dec 22 Javascript
BootStrap CSS全局样式和表格样式源码解析
Jan 20 Javascript
关于vue单文件中引用路径的处理方法
Jan 08 Javascript
JavaScript实现JSON合并操作示例【递归深度合并】
Sep 07 Javascript
vue引入axios同源跨域问题
Sep 27 Javascript
javascript合并两个数组最简单的实现方法
Sep 14 Javascript
Node.js 实现抢票小工具 &amp; 短信通知提醒功能
Oct 22 Javascript
利用ES6语法重构React组件详解
Mar 02 #Javascript
深入理解在JS中通过四种设置事件处理程序的方法
Mar 02 #Javascript
JavaScript表单验证完美代码
Mar 02 #Javascript
js实现常见的工具条效果
Mar 02 #Javascript
详谈jQuery unbind 删除绑定事件 / 移除标签方法
Mar 02 #Javascript
jQuery给表格添加分页效果
Mar 02 #Javascript
浅谈jQuery的bind和unbind事件(绑定和解绑事件)
Mar 02 #Javascript
You might like
php park、unpark、ord 函数使用方法(二进制流接口应用实例)
2010/10/19 PHP
供参考的 php 学习提高路线分享
2011/10/23 PHP
利用PHP生成静态HTML文档的原理
2012/10/29 PHP
深入php list()函数的详解
2013/06/05 PHP
用PHP实现弹出消息提示框的两种方法
2013/12/17 PHP
codeigniter框架批量插入数据
2014/01/09 PHP
php注册和登录界面的实现案例(推荐)
2016/10/24 PHP
PHP中“=&gt;
2019/03/01 PHP
javascript中类的定义及其方式(《javascript高级程序设计》学习笔记)
2011/07/04 Javascript
javascript 获取iframe里页面中元素值的方法
2014/02/17 Javascript
Nodejs sublime text 3安装与配置
2014/06/19 NodeJs
使用documentElement正确取得当前可见区域的大小
2014/07/25 Javascript
JavaScript字符串对象substr方法入门实例(用于截取字符串)
2014/10/16 Javascript
jquery中checkbox全选失效的解决方法
2014/12/26 Javascript
Bootstrap弹出带合法性检查的登录框实例代码【推荐】
2016/06/23 Javascript
Vue2实现组件props双向绑定
2016/12/02 Javascript
Vue 组件传值几种常用方法【总结】
2018/05/28 Javascript
vue-cli3.0使用及部分配置详解
2018/08/29 Javascript
Vuerouter的beforeEach与afterEach钩子函数的区别
2018/12/26 Javascript
学习python之编写简单乘法口诀表实现代码
2016/02/27 Python
Python实现PS滤镜的旋转模糊功能示例
2018/01/20 Python
python实现指定文件夹下的指定文件移动到指定位置
2018/09/17 Python
基于python全局设置id 自动化测试元素定位过程解析
2019/09/04 Python
详解使用Python下载文件的几种方法
2019/10/13 Python
django框架单表操作之增删改实例分析
2019/12/16 Python
用python实现前向分词最大匹配算法的示例代码
2020/08/06 Python
新加坡网上化妆品店:Best Buy World
2018/05/18 全球购物
出纳工作岗位责任制
2014/02/02 职场文书
民族团结先进集体事迹材料
2014/05/22 职场文书
法院授权委托书范文
2014/08/02 职场文书
做一个有道德的人活动实施方案
2014/08/23 职场文书
2014年社区工作总结
2014/11/18 职场文书
2014年小班保育员工作总结
2014/12/23 职场文书
2015年教导处教学工作总结
2015/07/22 职场文书
详解Redis瘦身指南
2021/05/26 Redis
Win2008系统搭建DHCP服务器
2022/06/25 Servers