如标题,之前在某个地方看到因为有Blob的存在,理论上可以在浏览器上查看所有格式的文件.自己想着试试现在暂时只能够查看图片和预览txt文件.其他的比如doc,docx格式的文件查看的时候是乱码

如图:可以多选照片查看,可以查看txt文件

不说多了,主要是利用filereader读取blob转成base64或者直接读取文本然后展示.代码如下:

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title></title>
</head>
<body>
<input type="file" id="file1" multiple="multiple">
<div id="showArea" style="width: 500px;height: 500px;border: #0066CC 1px solid;"> </div>
<textarea rows="30" cols="80" id="textarea"> </textarea>
</body>
<script type="text/javascript">
/* ArrayBuffer, Blob对象(二进制文件) 和 字符串, base64(ASCII码) 之间的相互转换/单向转换, */ // 文件读取器 FileReader
// FileReader 只接受 File 或 Blob 类型的数据(事实上 File 也 Blob 的一种)
// 1.Blob类型
const filereader = new FileReader();
const blob = new Blob(['hello file-reader'], { type: 'text/plain'});
filereader.onload = e => {
console.log(e.target.result); // 输出 data:text/plain;base64,aGVsbG8gZmlsZS1yZWFkZXI=
var txt = new File();
}
// filereader.readAsDataURL(blob);
// 2. File类型
let file1DOM = document.querySelector('#file1');
file1DOM.onchange = function(){
console.log(this.files)
let file1 = this.value
var fileReaders = []
for(var i = 0;i<this.files.length;i++){
console.log(this.files[i].type)
fileReaders[i] = new FileReader();
var fileType = this.files[i].type.split('/')[0]
if(fileType == 'image'){
fileReaders[i].readAsDataURL(this.files[i])
fileReaders[i].onload = function(e) {
var image = new Image();
image.setAttribute('src',e.target.result)
image.setAttribute('width',200)
image.onload = function() {
document.querySelector('#showArea').appendChild(this)
}
}
} else if(fileType == 'text'){
fileReaders[i].readAsText(this.files[i])
fileReaders[i].onload = function(e){
document.querySelector('#textarea').value = e.target.result
}
}
}
}
</script>
</html>

试过利用filereader的readastext()读取docx,但是读取出来格式是application/vnd.openxmlformats-officedocument.wordprocessingml.document,读取出来也是乱码.大概是编码问题.试了试别的编码方式GB2312,GBK没有用,都是乱码.先放放,有空了再看看

最新文章

  1. Javascript中的栈
  2. 单线程vs多线程
  3. java nio 网络框架实现
  4. thinkPhp 3.1.3的验证码无法显示的问题
  5. 手把手教你玩转Git分布式版本控制系统! (转载)
  6. 7款经典炫酷的HTML5/jQuery动画应用示例及源码
  7. php register_shutdown_function
  8. 运用Hibernate-Tools自动生成Java类和schema时,出现not found while looking for property...异常
  9. JS日历控件
  10. Kafka Ecosystem(Kafka生态)
  11. 【转】inotify+rsync实现实时同步
  12. python之命令行参数解析模块argparse
  13. java项目部署在linux上
  14. UML类图中的各种箭头代表的含义(转自:http://www.cnblogs.com/damsoft/archive/2016/10/24/5993602.html)
  15. 有关集合的foreach循环里的add/remove
  16. PHP初级
  17. 简单json---转树形json
  18. 6.shell判断语句
  19. 洛谷P1022 计算器的改良
  20. 3736 【HR】万花丛中2

热门文章

  1. pat 1054 The Dominant Color(20 分)
  2. JMeter从0开始-笔记
  3. 二 linuk系统安装
  4. ReadWriteLock: 读写锁
  5. 工作常用4种Java线程锁的特点,性能比较、使用场景
  6. 2019-9-11:渗透测试,Kill远控软件,初接触
  7. 【笔记】总结Springboot和Vue前后端分离的跨域问题
  8. 安装Linux基本工具
  9. 【C/C++】之C语言库函数
  10. Vue项目解析