File API是HTML5新增内容,依靠file和FileReader,这两个对象完成,代码如下:

var
fileInput = document.getElementById('test-image-file'),
info = document.getElementById('test-file-info'),
preview = document.getElementById('test-image-preview');
// 监听change事件:
fileInput.addEventListener('change', function () {
// 清除背景图片:
preview.style.backgroundImage = '';
// 检查文件是否选择:
if (!fileInput.value) {
info.innerHTML = '没有选择文件';
return;
}
// 获取File引用:
var file = fileInput.files[0];
// 获取File信息:
info.innerHTML = '文件: ' + file.name + '<br>' +
'大小: ' + file.size + '<br>' +
'修改: ' + file.lastModifiedDate;
if (file.type !== 'image/jpeg' && file.type !== 'image/png' && file.type !== 'image/gif') {
alert('不是有效的图片文件!');
return;
}
// 读取文件:
var reader = new FileReader();
reader.onload = function(e) {
var
data = e.target.result; // 'data:image/jpeg;base64,/9j/4AAQSk...(base64编码)...'
preview.style.backgroundImage = 'url(' + data + ')';
};
// 以DataURL的形式读取文件:
reader.readAsDataURL(file);
});

最新文章

  1. 元素设置为display:none,其绑定的事件仍存在
  2. STL之deque用法详解
  3. while小问题
  4. javascript笔记——jqGrid 格式化时间列
  5. python 面向对象 class 老男孩选课系统
  6. 解决android模拟器太大,小屏幕无法完全显示的问题
  7. SVN 中trunk、tags、branches使用
  8. npm包管理工具
  9. EC读书笔记系列之16:条款35、36、37、38、39、40
  10. No matching code signing identity found
  11. 使用 Http 的 Get 方式读取网络数据
  12. CF997C Sky Full of Stars
  13. 【java】异常
  14. windows下《Go Web编程》之Go命令
  15. Win10系列:UWP界面布局进阶5
  16. spring boot使用配置文件内容
  17. Redis数据类型之SDS简单动态字符串
  18. 山东第四届省赛C题: A^X mod P
  19. 第一次项目冲刺(Alpha版本)2017/11/17
  20. PIXI 下落文字消除(3)

热门文章

  1. POJ 2134
  2. poi读取合并单元格
  3. 拷贝构造函数(深拷贝vs浅拷贝)
  4. UML中的序列图(时序图)
  5. angularjs1-6,自定义服务
  6. angularjs1-3,$apply,$watch
  7. Oracle实例和Oracle数据库(Oracle体系结构)---转载
  8. myeclipse打开jsp页面慢或者卡死
  9. windows bat更改系统时间 &amp; 同步internet时间
  10. 剑指offer——03从尾至头打印列表(Python3)