HTML5 之 FileReader 方法上传并读取文件
原文地址:https://caochangkui.github.io/file-upload/
HTML5 的 FileReader 对象允许Web应用程序异步读取存储在用户计算机上的文件(或原始数据缓冲区)的内容,使用 File 或 Blob 对象指定要读取的文件或数据。
FileReader 事件
FileReader.onabort
处理abort事件。该事件在读取操作被中断时触发。FileReader.onerror
处理error事件。该事件在读取操作发生错误时触发。FileReader.onload
处理load事件。该事件在读取操作完成时触发。FileReader.onloadstart
处理loadstart事件。该事件在读取操作开始时触发。FileReader.onloadend
处理loadend事件。该事件在读取操作结束时(要么成功,要么失败)触发。FileReader.onprogress
处理progress事件。该事件在读取Blob时触发。
用法
下面分别是上传csv文件和图片文件的两种用法:
html部分
<div style="border: 1px solid red;">
<h2>上传CSV文件</h2>
<input type="file" id="file" accept=".csv" onchange="uploadfile();" />
<div id="result"> </div>
</div>
<br>
<br>
<div style="border: 1px solid red;">
<h2>上传图片</h2>
<input type="file" id="file2" accept="image/*" onchange="uploadfile2();" />
<div id="result2">
<img src="" alt="" id="img">
</div>
</div>
js部分
<script>
// 上传csv格式的文件
function uploadfile() {
let reads = new FileReader();
file = document.getElementById('file').files[0];
reads.readAsText(file, 'utf-8');
console.log(reads);
reads.onload = function (e) {
console.log(e)
// document.getElementById('result').innerText = this.result
document.getElementById('result').innerText = e.target.result
};
reads.onloadstart = function(e) {
console.log('onloadstart ---> ', e)
}
reads.onloadend = function(e) {
console.log('onloadend ---> ', e)
}
reads.onprogress = function(e) {
console.log('onprogress ---> ', e)
}
}
// 上传image
function uploadfile2() {
let reads = new FileReader();
file = document.getElementById('file2').files[0];
reads.readAsDataURL(file);
console.log(reads);
reads.onload = function (e) {
document.getElementById('img').src = this.result;
};
}
</script>
HTML5 之 FileReader 方法上传并读取文件的更多相关文章
- php+html5实现无刷新上传,大文件分片上传,断点续传
核心原理: 该项目核心就是文件分块上传.前后端要高度配合,需要双方约定好一些数据,才能完成大文件分块,我们在项目中要重点解决的以下问题. * 如何分片: * 如何合成一个文件: * 中断了从哪个分片开 ...
- 深入研究HTML5实现图片压缩上传
上篇文章中提到移动端上传图片,我们知道现在流量还是挺贵的,手机的像素是越来越高,拍个照动不动就是好几M,伤不起.虽然客户端可以轻轻松松实现图片压缩再上传,但是我们的应用还可能在浏览器里面打开,怎么办呢 ...
- HTML5裁剪图片并上传至服务器实现原理讲解
HTML5裁剪图片并上传至服务器实现原理讲解 经常做项目需要本地上传图片裁剪并上传服务器,比如会议头像等功能,但以前实现这类需求都很复杂,往往需要先把图片上传到服务器,然后返回给用户,让用户确定裁 ...
- 基于html5的多图片上传,预览
基于html5的多图片上传 本文是建立在张鑫旭大神的多文图片传的基础之上. 首先先放出来大神多图片上传的博客地址:http://www.zhangxinxu.com/wordpress/2011/09 ...
- [开源应用]利用HTTPHandler+resumableJs+HTML5实现拖拽上传[大]文件
前言: 大文件传输一直是技术上的一大难点.文件过大时,一些性提交所有的内容进内存是不现实的.大文件带来问题还有是否支持断点传输和多文件同时传输. 本文以resumableJs为例,介绍了如何在ASP. ...
- Nodejs express、html5实现拖拽上传
一.前言 文件上传是一个比较常见的功能,传统的选择方式的上传比较麻烦,需要先点击上传按钮,然后再找到文件的路径,然后上传.给用户体验带来很大问题.html5开始支持拖拽上传的需要的api.nodejs ...
- HTML5文件上传器,纯脚本无插件的客户端文件上传器---Uploader 文件上传器类
概述 客户端完全基于JavaScript的 浏览器文件上传器,不需要任何浏览器插件,但需要和jQuery框架协同工作,支持超大文件上传,其算法是将一个超大文件切片成N个数据块依次提交给服务 端处理,由 ...
- 导出HTML5 Canvas图片并上传服务器功能
这篇文章主要介绍了导出HTML5 Canvas图片并上传服务器功能,文中通过实例代码给大家介绍了HTML5 Canvas转化成图片后上传服务器,代码简单易懂非常不错,具有一定的参考借鉴价值,需要的朋友 ...
- ci框架读取上传的excel文件数据
原文链接: https://blog.csdn.net/qq_38148394/article/details/87921373 此功能实现使用到PHPExcel类库,PHPExcel是一个PHP类库 ...
随机推荐
- JMeter安装+配置+运行
环境配置: 操作系统:Win7系统 jdk版本:1.8 JMeter版本:3.0 一 JMeter的安装配置过程 JMeter是100%纯java应用程序,它在任何支持完整java实现的系统上都能正 ...
- 固态硬盘和机械硬盘的比较和SQLSERVER在两种硬盘上的性能差异
固态硬盘和机械硬盘的比较和SQLSERVER在两种硬盘上的性能差异 在看这篇文章之前可以先看一下下面的文章: SSD小白用户收货!SSD的误区如何解决 这样配会损失性能?实测6种特殊装机方式 听说固态 ...
- 测试笔试单选题(持续更新ing)
1.在GB/T17544中,软件包质量要求包括三部分,即产品描述要求._____.程 序和数据要求.( A ) A.用户文档要求 B.系统功能要求 C.设计要求说明 D.软件配置要求 2.软件的六大质 ...
- 将 Windows VM 移到其他 Azure 订阅或资源组
本文逐步说明如何在资源组或订阅之间移动 Windows VM. 如果最初在个人订阅中创建了 VM,现在想要将其移到公司的订阅以继续工作,则在订阅之间移动 VM 可能很方便. Important 不可在 ...
- SQL Server 合并复制如何把备份的发布端或订阅端BAK文件还原为数据库
SQL Server的合并复制,是可以备份发布端和订阅端数据库为BAK文件的,但是问题是合并复制在数据库中自动创建的系统表.触发器.表中的RowGuid列等也会被一起备份. 这里我们举个例子,下面图中 ...
- logger.error完整打印错误堆栈信息
所以我们的写法可以是: Logger.error("xxx出错" , e); //第二个参数是e 而不是: Logger.error("xxx出错:" + e) ...
- C Programming vs. Java Programming
Thing C Java type of language function oriented object oriented basic programming unit function clas ...
- 使用 jekyll + github pages 搭建个人博客
1. 新建 github.io 项目 其实 github pages 有两个用途,大家可以在官方网页看到.其中一个是作为个人/组织的主页(每个账号只能有一个),另一个是作为 github 项目的项目主 ...
- UltraEdit 换行替换
需求:想在每行结尾添加 '), 方案:在查找栏填写(^r^n) 替换栏('),^r^n) 效果:
- VS2017C++单元测试
0.欢迎食用 希望对点进来的你有所帮助. 全文记流水账,内心想法如示例项目名称. 1.建立需测试的项目 新建项目 正常书写.h 和.cpp文件 2.新建单元测试 右击解决方案 -> 添加 -&g ...