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 图片上传前预览的更多相关文章

  1. input file实现多选,限制文件上传类型,图片上传前预览功能

    限制上传类型 & 多选:① accept 属性只能与 <input type="file" /> 配合使用.它规定能够通过文件上传进行提交的文件类型. ② mu ...

  2. html之file标签 --- 图片上传前预览 -- FileReader

    记得以前做网站时,曾经需要实现一个图片上传到服务器前,先预览的功能.当时用html的<input type="file"/>标签一直实现不了,最后舍弃了这个标签,使用了 ...

  3. file标签 - 图片上传前预览 - FileReader & 网络图片转base64和文件流

    记得以前做网站时,曾经需要实现一个图片上传到服务器前,先预览的功能.当时用html的<input type="file"/>标签一直实现不了,最后舍弃了这个标签,使用了 ...

  4. 【转】html之file标签 --- 图片上传前预览 -- FileReader

    记得以前做网站时,曾经需要实现一个图片上传到服务器前,先预览的功能.当时用html的<input type="file"/>标签一直实现不了,最后舍弃了这个标签,使用了 ...

  5. ASP.NET MVC图片上传前预览

    回老家过春节,大半个月,在家的日子里,吃好睡好,人也长了3.5Kg.没有电脑,没有网络,无需写代码,工作上相关的完全放下......开心与父母妻儿过个年,那样的生活令Insus.NET现在还在留恋.. ...

  6. 【转】HTML5 jQuery图片上传前预览

    hTML5实现表单内的上传文件框,上传前预览图片,针刷新预览images,本例子主要是使用HTML5 的File API,建立一個可存取到该 file的url,一个空的img标签,ID为img0,把选 ...

  7. HTML5 jQuery图片上传前预览

    hTML5实现表单内的上传文件框,上传前预览图片,针刷新预览images,本例子主要是使用HTML5 的File API,建立一個可存取到该file的url,一个空的img标签,ID为img0,把选择 ...

  8. HTML5 FileReader实现图片上传前预览

    如果你的浏览器支持Html5的FileReader的话,实现图片上传前进行预览是一件非常容易之事情. 在控制器,创建一个视图Action: jQuery代码: 实时演示一下: 下面内容于2014-11 ...

  9. 图片上传前预览、压缩、转blob、转formData等操作

    直接上代码吧: <template> <div> <div class="header">添加淘宝买号</div> <div ...

  10. jq 图片上传前预览

    html: <div class="form_upload"> <input type="file" id="uploadImg&q ...

随机推荐

  1. 国外的SRE都是干啥工作的?薪资如何?

    本文翻译自:https://www.flagship.io/glossary/site-reliability-engineer/,意译~ 众所周知,开发和 IT 运营之间因为屁股决定脑袋,存在巨大的 ...

  2. Cesium之基础控件

    1. 引言 Cesium是一款三维地球和地图可视化开源JavaScript库,使用WebGL来进行硬件加速图形,使用时不需要任何插件支持,基于Apache2.0许可的开源程序,可以免费用于商业和非商业 ...

  3. 【译】.NET 7 中的性能改进(十)

    原文 | Stephen Toub 翻译 | 郑子铭 最后一个有趣的与IndexOf有关的优化.字符串早就有了IndexOf/IndexOfAny/LastIndexOf/LastIndexOfAny ...

  4. LeetCode-19 删除链表倒数第N个结点

    来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/remove-nth-node-from-end-of-list 题目描述 给你一个链表,删除链表 ...

  5. Net6 Core Api(.net6)发布到IIS注意事项及显示HTTP 错误500.19解决方法

    Net6 Core Api发布到IIS不同于webapi,依赖框架不同,配置也移至项目内Program.cs 一.发布到指定文件夹,和IIS,不过注意IIS应用程序池选择的是 "无托管代码& ...

  6. 浏览器调试工具devtool

    视频网址 先打开devtool,再打开命令菜单.可以用screenshot来截屏 $0:先在element点击元素,再在控制台输入$0,这个$0代表element中选中的DOM元素. $1,$2... ...

  7. C++跨平台类库导出宏

    // Macros.h #pragma once #if defined(__GNUC__) #define _DEPRECATED_ __attribute__((deprecated)) #def ...

  8. 随机颜色,加载loading效果,节流,应用周期函数,wxs

    随机颜色 data: { colorList:[] }, getColor(){ wx.request({ url: 'https://www.escook.cn/api/color', method ...

  9. MySQL的Temporary Files存放路径

    在Linux环境中MySQL用TMPDIR环境变量来设置temporary files的路径,如果没有设置,MySQL会用系统默认 /tmp, /var/tmp或/usr/tmp. 1.当排序时(OR ...

  10. 任务队列神器:Celery 入门到进阶指南

    任务队列神器:Celery 入门到进阶指南 发布于2021-03-24 16:24:53阅读 1.9K0   1.什么是celery celery是一个简单,灵活.可靠的分布式任务执行框架,可以支持大 ...