DataTransfer.files 属性

2019-10-9 22:06| 作者: admin| 查看: 150| 评论: 0|来自: 蚂蚁部落

DataTransfer.files属性可以返回从操作系统向浏览器拖拽的文件列表。

如果拖拽操作不涉及文件,那么此属性返回值为空列表。

语法结构:

[JavaScript] 纯文本查看 复制代码
dataTransfer.files

此属性的返回值是类型为FileList(文件列表)。

关于FileList类型更多内容可以参阅JavaScript FileList 集合一章节。

代码实例如下:

[HTML] 纯文本查看 复制代码运行代码
<!DOCTYPE html>
<html lang="zh-cn">
<head>
<meta charset=" utf-8">
<meta name="author" content="http://www.softwhy.com/" />
<title>蚂蚁部落</title>
<style type="text/css">
#demo {
  margin: 20px;
}
#demo .preview {
  height: 300px;
  width:300px;
  background: #ddd;
}
#demo li {
  list-style:none;
}
#demo img {
  max-height: 150px;
  width: auto;
}
</style>
<script>
window.onload = () => {
  let preview = document.querySelector('.preview');
 
  preview.addEventListener('dragover', function (e) {
    e.preventDefault();
  }, false);
 
  preview.addEventListener('drop', function (e) {
    e.preventDefault();
    e.stopPropagation();

    console.log(e.dataTransfer.files);
    
    [].forEach.call(e.dataTransfer.files, function (file) {
      if (file && file.type.match('image.*')) {
        let reader = new FileReader();
        reader.onload = function (e) {
          var img = document.createElement('img');
          img.src = e.target.result;
          var li = document.createElement('li');
          li.appendChild(img);
          preview.appendChild(li);
        };
        reader.readAsDataURL(file);
      }
    });
  }, false);
}
</script>
</head>
<body>
  <div id="demo">
    <h3>拖拽图片进入下面区域预览</h3>
    <ul class="preview"></ul>
  </div>
</body>
</html>

现在向灰色区域拖入两张图片,代码运行效果截图如下:

a:3:{s:3:\"pic\";s:43:\"portal/201910/09/220709v5r82ifort8cqqlt.png\";s:5:\"thumb\";s:0:\"\";s:6:\"remote\";N;}

面看控制台打印信息如下:

a:3:{s:3:\"pic\";s:43:\"portal/201910/09/220726vzjwmu6cx9rjaoux.png\";s:5:\"thumb\";s:0:\"\";s:6:\"remote\";N;}

可以看到返回值是一个集合,里面有两个图片文件。

还有更多的信息,为了节省空间,仅截取了一部分信息。


鲜花

握手

雷人

路过

鸡蛋

最新评论

返回顶部