html5文件读取+按钮样式重置+文件内容预览
FileReader读取文件详细介绍请访问:http://www.cnblogs.com/xyyt/p/9066882.html
FileReader提供了如下方法:
readAsArrayBuffer(file) | 按字节读取文件内容,结果用ArrayBuffer对象表示 |
readAsBinaryString(file) | 按字节读取文件内容,结果为文件的二进制串 |
readAsDataURL(file) | 读取文件内容,结果用data:url的字符串形式表示 |
readAsText(file,encoding) | 按字符读取文件内容,结果用字符串形式表示 |
abort() | 终止文件读取操作 |
readAsDataURL和readAsText较为常用,这里以这两个为例,说明具体使用方法:
1.readAsDataURL:readAsDataURL会将文件内容进行base64编码后输出。
由于媒体文件的src属性,可以通过采用网络地址或base64的方式显示,因此我们可以利用readAsDataURL实现对图片的预览。
2.readAsText:导入文档格式文件,默认按Utf-8格式读取,其他格式需要设置编码格式:
readAsText(file,encoding)可按指定编码方式读取文件,但读取文件的单位是字符,故对于文本文件,只要按规定的编码方式读取即可;而对于媒体文件(图片、音频、视频),其内部组成并不是按字符排列,故采用readAsText读取,会产生乱码,因此不是最理想的读取文件的方式。
示例代码如下:
- <!DOCTYPE html>
- <html>
- <head>
- <meta charset="UTF-8">
- <style>
- .btn-info {
- cursor: pointer;
- width: 88px;
- height: 36px;
- line-height: 36px;
- color: #fff;
- background-color: #5bc0de;
- border-color: #46b8da;
- border: 1px solid transparent;
- border-radius: 4px;
- }
- </style>
- <title></title>
- </head>
- <body>
- <div id="app">
- <div class="fileBtn">
- <form id="uploadForm" action="" method="post" enctype="multipart/form-data">
- <input type="file" name="uploadFile" id="uploadFile" @change="readFile" style="visibility:hidden;position:absolute;top:0px;width:0px" />
- <!--隐藏默认标签样式-->
- </form>
- <input type="button" class="btn btn-info" value="导入文档" @click="clickUploadBtn" /> 支持.txt .doc .xls .cvs等文件格式
- </div>
- <article>
- <h4>上传文档预览</h4>
- <ul style="list-style: none;">
- <li v-for="i in fileData">{{i}}</li>
- </ul>
- <h4>上传图片预览</h4>
- <div><img :src="imgData"></div>
- </article>
- </div>
- </body>
- <script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script>
- <script>
- Vue.config.silent = false;
- Vue.config.devtools = true;
- var app = new Vue({
- el: '#app',
- data: {
- fileData: [],
- imgData:""
- },
- created: function() {},
- mounted: function() {},
- methods: {
- /**
- * 上传按钮单击事件
- */
- clickUploadBtn: function() {
- //触发file的点击事件
- document.getElementById("uploadFile").click()
- },
- readFile: function() {
- var inputBox = document.getElementById("uploadFile");
- var fileName=inputBox.value;
- var fileType;
- var regImg=/(?:jpg|gif|png|jpeg)$/;
- var reader = new FileReader();
- var self=this;
- //发起异步请求
- if(regImg.test(fileName)){
- //图片格式文件
- reader.readAsDataURL(inputBox.files[0]);
- reader.onload = function() {
- self.imgData=this.result
- console.log(this.result)
- }
- }else{
- //其他文档 格式(utf-8编码格式)
- reader.readAsText(inputBox.files[0], "utf-8");
- reader.onload = function() {
- //读取完成后,数据保存在对象的result属性中
- self.fileData = this.result.split("\n")
- console.log(this.result)
- }
- }
- }
- }
- })
- </script>
- </html>
html5文件读取+按钮样式重置+文件内容预览的更多相关文章
- nio实现文件读取写入数据库或文件
1.nio实现读取大文件,之后分批读取写入数据库 2.nio实现读取大文件,之后分批写入指定文件 package com.ally; import java.io.File; import java. ...
- SpringBoot读取Linux服务器某路径下文件\读取项目Resource下文件
// SpringBoot读取Linux服务器某路径下文件 public String messageToRouted() { File file = null; try { file = Resou ...
- 使用java的 htpUrlConnection post请求 下载pdf文件,然后输出到页面进行预览和下载
使用java的 htpUrlConnection post请求 下载pdf文件,然后输出到页面进行预览和下载 2018年06月07日 10:42:26 守望dfdfdf 阅读数:235 标签: jav ...
- FileUpload控件实现单按钮图片自动上传并带预览显示
FileUpload控件实现单按钮图片自动上传并带预览显示 1.实现原理: FileUpload控件默认不支持服务端的ONCHANGE事件,此时用一种变通的方法借用客户端的onchange事件,调 ...
- Vue.js +pdf.js 处理响应pdf文件流数据,前端转图片预览不可下载
使用场景及原因 实际业务中,一些说明书或协议仅支持用户在线预览,为避免用户自行下载,并进行修改,引发纠纷,特将文件已文件流的形式,传给前端并转为图片显示,此时可能会有人问,为什么不直接在后端转图片,前 ...
- [java]文件上传下载删除与图片预览
图片预览 @GetMapping("/image") @ResponseBody public Result image(@RequestParam("imageName ...
- python自动化之上传文件的3种方法和图片预览
ajax上传文件的三种方法 第一种xhr提交 function xhrSubmit(){ // $('#fafafa')[0] var file_obj = document.getElementBy ...
- Java 文件本地上传、下载和预览的实现
以下方法为通用版本 实测图片和pdf 都没有问题 上传方法需要前端配合post请求 ,下载前端用a标签就可以,预览 前端使用ifrme标签 ,就可以实现基本功能... 1.文件本地上传 publi ...
- input file样式修改,图片预览删除功能
本篇对input file进行了修改,改成自己需要的样式,类似验证身份上传身份证图片的功能. 效果图如下: 这里主要展示上传预览图片功能,对于删除功能的html及css写的比较粗糙,对于想要精细表现这 ...
随机推荐
- 机器学习入门-数值特征-进行二值化变化 1.Binarizer(进行数据的二值化操作)
函数说明: 1. Binarizer(threshold=0.9) 将数据进行二值化,threshold表示大于0.9的数据为1,小于0.9的数据为0 对于一些数值型的特征:存在0还有其他的一些数 二 ...
- day05-if-else语句
1.Python条件语句 Python条件语句是通过一条或多条语句的执行结果(True或者False)来决定执行的代码块.Python程序语言指定任何非0和非空(null)值为true,0 或者 nu ...
- java byte[]与十六进制字符串相互转换
http://blog.csdn.net/worm0527/article/details/69939307 http://blog.csdn.net/androiddeveloper_lee/art ...
- Django--ORM(模型层)--多表(重重点)
一.数据库表关系 单表 重复的字段太多,所以需要一对多,多对多来简化 多表 多对一 多对多 一对一 =============================================== 一对 ...
- Matlab实现BP网络识别字母
训练样本空间 每个样本使用5×5的二值矩阵表征一个字母.一共10个字母类型,分别是N,I,L,H,T,C,E,F,Z,V.每个字母9个样本.共90个. N1=[1,0,0,0,1; 1,0,0,0 ...
- Uni2D 入门 -- Asset Table
转载 http://blog.csdn.net/kakashi8841/article/details/17686791 Uni2D生成了一个自定义的表格用于保存你资源的唯一ID的引用.这个表格用于更 ...
- 处女座与cf-模拟
链接:https://ac.nowcoder.com/acm/contest/327/B来源:牛客网 题目描述 众所周知,处女座经常通过打cf来调节自己的心情.今天处女座又参加了一场cf的比赛,他知道 ...
- bootstrap 参考文档
https://getbootstrap.com/docs/3.3/css/#sass-installation
- 过滤access日志前5条数据
cat /usr/local/nginx/logs/access.log|awk '{print $1}'|sort|uniq -c|sort -n -r|head -5 找不到的话可以find查找a ...
- pyhton笔记(一):字符编码、变量
一.什么是python? python是一种面向对象.解释型的计算机语言,它的特点是语法简洁.优雅.简单易学. 编译型语言: 写好代码之后把代码编译成二进制文件,运行时运行编译好的二进制文件.比如C. ...