网页的本质就是超级文本标记语言,通过结合使用其他的Web技术(如:脚本语言、公共网关接口、组件等),可以创造出功能强大的网页。因而,超级文本标记语言是万维网(Web)编程的基础,也就是说万维网是建立在超文本基础之上的。超级文本标记语言之所以称为超文本标记语言,是因为文本中包含了所谓“超级链接”点。
本篇文章将给大家分享一个案例,利用HTML5实现文件上传的功能,有一定的参考价值,希望对大家有所帮助
html5新增的一些API方法使我们实现一些功能更加简便也可以实现更多的动态效果,接下来将详细介绍文件上传功能的实现
案例实现所用到的知识点
(1)multiple是HTML5新增属性主要用于多个值文件的上传,规定了所输入字段可选择多个值,一般与input属性中email 和 file共用
(2)querySelector() 方法主要用于返回文档中匹配指定选择器的第一个元素,如果要返回所有的元素可用querySelectorAll() 方法替代。
(3)FileReader 对象允许应用程序异步读取存储在计算机上的文件的内容,使用 File 或 Blob 对象指定读取的文件或数据。其中File对象可以是来自<input>元素上选择文件后返回的FileList对象
(4)readAsDataURL:将读取出来的图像文件,直接显示在网页上,达到预览效果
代码展示
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>文件读取</title>
<style>
.box{
width:500px;
height:500px;
border: 1px solid #ccc;
margin:300px auto;
position: relative;
background-color:rgb(167,239,251);
}
.file{
position: absolute;
bottom:0;
left:0;
}
#img{
position: absolute;
left:100px;
bottom:30px;
}
</style>
</head>
<body>
<div>
<input type="file" multiple>
<img src="" alt="" id="img">
</div>
<script>
var file = document.querySelector('.file');/*获取到了文件表单元素*/
/*选择文件后触发*/
file.onchange = function () {
/*初始化了一个文件读取对象*/
var reader = new FileReader();
/*读取文件数据 this.files[0] 文件表单元素选择的第一个文件 */
reader.readAsDataURL(this.files[0]);
/* 加载 */
reader.onload = function () {
/*读取完成显示图片*/
console.log(this.result);
document.querySelector('#img').src = this.result;
}
}
</script>
</body>
</html>