input file 图片上传前预览
1.获取到这个File对象之后就可以获取到上传文件的一些属性,比如:lastModified(代表文件的修改日期,而非上传日期)、name、size(单位是b)、type(例如图片就是"image/png",然后我们可以根据image来判断是否是图片)等。
2.fileReader对象获取文件信息,常用方法及事件。
- readAsDataURL() 方法。//将文件读取为base64的格式,也就是可以当成图片的src
- result 属性 //将读取的数据保存在result里。
- progress 事件 //定时触发,来获取当前已上传文件的大小,如进度条。
- loade 事件 //文件上传完成时触发。
- loadend 事件 //文件上传完成时(不管成功、失败)触发。
3.事例
1、页面上传,预览。
<form id="test" action="" method="post" enctype="multipart/form-data">
<img src="" id="image-preview" width="200">
<p>
<input type="file" id="image-file" name="test" onchange="fileUpload()">
</p>
<p id="file-info"></p>
</form>
2、js实现fileUpload()。
<script>
function fileUpload(){
var
fileImage = document.getElementById('image-file'),
info = document.getElementById('file-info');
debugger;
// 清除历史图片:
document.getElementById('image-preview').src = '';
// 检查文件是否选择:
if(!fileImage.value) {
info.innerHTML = '没有选择文件';
return;
}
// 获取File引用:
var file = fileImage.files[0];
//判断文件大小
var size = file.size;
if(size >= 1*1024*1024){
alert('文件大于1兆不行!');
return false;
}
// 获取File信息:
info.innerHTML = '文件: ' + file.name + '<br>' +
'大小: ' + file.size + '<br>' +
'修改时间: ' +file.lastModifiedDate.getFullYear()+'年'+ (file.lastModifiedDate.getMonth()+1)+'月'+file.lastModifiedDate.getDay()+'日';
if(file.type !== 'image/jpeg' && file.type !== 'image/png' && file.type !== 'image/gif') {
return;
}
// 读取文件:
var reader = new FileReader();
// 以DataURL的形式读取文件:
reader.readAsDataURL(file);
reader.onload = function(e) {
document.getElementById('image-preview').src=this.result;
};
console.log(file);
}
</script>
input file 图片上传前预览的更多相关文章
- input file实现多选,限制文件上传类型,图片上传前预览功能
限制上传类型 & 多选:① accept 属性只能与 <input type="file" /> 配合使用.它规定能够通过文件上传进行提交的文件类型. ② mu ...
- html之file标签 --- 图片上传前预览 -- FileReader
记得以前做网站时,曾经需要实现一个图片上传到服务器前,先预览的功能.当时用html的<input type="file"/>标签一直实现不了,最后舍弃了这个标签,使用了 ...
- file标签 - 图片上传前预览 - FileReader & 网络图片转base64和文件流
记得以前做网站时,曾经需要实现一个图片上传到服务器前,先预览的功能.当时用html的<input type="file"/>标签一直实现不了,最后舍弃了这个标签,使用了 ...
- 【转】html之file标签 --- 图片上传前预览 -- FileReader
记得以前做网站时,曾经需要实现一个图片上传到服务器前,先预览的功能.当时用html的<input type="file"/>标签一直实现不了,最后舍弃了这个标签,使用了 ...
- ASP.NET MVC图片上传前预览
回老家过春节,大半个月,在家的日子里,吃好睡好,人也长了3.5Kg.没有电脑,没有网络,无需写代码,工作上相关的完全放下......开心与父母妻儿过个年,那样的生活令Insus.NET现在还在留恋.. ...
- 【转】HTML5 jQuery图片上传前预览
hTML5实现表单内的上传文件框,上传前预览图片,针刷新预览images,本例子主要是使用HTML5 的File API,建立一個可存取到该 file的url,一个空的img标签,ID为img0,把选 ...
- HTML5 jQuery图片上传前预览
hTML5实现表单内的上传文件框,上传前预览图片,针刷新预览images,本例子主要是使用HTML5 的File API,建立一個可存取到该file的url,一个空的img标签,ID为img0,把选择 ...
- HTML5 FileReader实现图片上传前预览
如果你的浏览器支持Html5的FileReader的话,实现图片上传前进行预览是一件非常容易之事情. 在控制器,创建一个视图Action: jQuery代码: 实时演示一下: 下面内容于2014-11 ...
- 图片上传前预览、压缩、转blob、转formData等操作
直接上代码吧: <template> <div> <div class="header">添加淘宝买号</div> <div ...
- jq 图片上传前预览
html: <div class="form_upload"> <input type="file" id="uploadImg&q ...
随机推荐
- Vue 关键概念介绍
Vue现在已经迭代到 3+ 版本,阅读官方文档的过程中发现作者的一些理念和思路很合我口味,很多概念与方案都是基于解决实际问题提出并实现的,且在权衡利弊后勇于打破常规,比如如何看待关注点分离?.可见,V ...
- Sublime Text 3怎么配置本地服务器?
1. 同样的我们需要借助一款插件来实现. 2.打开Sublime,使用快捷键[Ctrl + Shift + P]或者点击"Preferences"=> "Packa ...
- 《话糙理不糙》之如何在学习openfoam时避免坑蒙拐骗
今天开启一个单独的系列 <话糙理不糙> - 谁要和你说学openfoamC++基础不重要,那就是放氨气,非常误人 这就好比没读过外国文献的人和你说不需要学专业英语一样 谜底就在谜面里,程序 ...
- Spring Boot 整合 Logback 日志
Spring Boot 支持 Java Util Logging,Log4J,Log4J2 和 Logback 等日志框架,默认采用 Logback 日志. 在实际 Spring Boot 项目中使用 ...
- STM32定时器TIM_OC1PreloadConfig、TIM_ARRPreloadConfig函数详解
-------------------------------------------版权声明:本文为CSDN博主「qlexcel」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处 ...
- XAF特性属性记录
1.[XafDisplayName("名称")] (1)在类上面表示修改左侧菜单的名称 (2)在字段属性上使用表示修改字段名称 2.[ImageName("Actions ...
- vue-element-admin框架连接yapi配置vue.config.js
devServer: { host:'localhost', port:port, proxy:{ [process.env.VUE_APP_BASE_API + '/admin']: { //配置p ...
- leecode75. 颜色分类
75. 颜色分类 给定一个包含红色.白色和蓝色.共 n 个元素的数组 nums ,原地对它们进行排序,使得相同颜色的元素相邻,并按照红色.白色.蓝色顺序排列. 我们使用整数 0. 1 和 2 分别表示 ...
- Spring基本概述
Spring是一个开源框架,官方网站是http://spring.io/,Spring是2003年兴起的一个轻量级的Java开发框架,由lnterface21公司的JavaEE专家RodJohnson ...
- FRP 反向代理渗透
前言 之前在一个项目中遇到了一个渗透环境,只能使用工具代理远程访问内网,于是便接触了FRP这款内网穿透工具,通过内网反向代理进行远程渗透测试.这篇文章就简单介绍如何实现FRP反向代理渗透,作为个人笔记 ...