>  기사  >  웹 프론트엔드  >  HTML5 js는 드래그 앤 드롭 파일 업로드 기능을 구현합니다.

HTML5 js는 드래그 앤 드롭 파일 업로드 기능을 구현합니다.

高洛峰
高洛峰원래의
2017-01-12 17:09:201455검색

HTML5 PC에는 많은 기능이 구현되어 있는데, 제 작업에서는 드래그 앤 드롭 업로드도 사용하고 있습니다. 이 기능을 특별히 녹화했습니다.

이벤트(소스 요소)를 에 트리거합니다. 드래그 대상:

ondragstart - 사용자가 요소 드래그를 시작할 때 트리거
ondrag - 요소가 드래그될 때 트리거
ondragend - 사용자가 요소 드래그를 완료할 때 트리거

대상이 해제될 때 트리거됩니다. 이벤트:

ondragenter - 이 이벤트는 마우스로 드래그되는 객체가 해당 컨테이너의 범위에 들어갈 때 트리거됩니다.
ondragover - 드래그된 객체가 다른 객체의 컨테이너 범위 내에서 드래그 이 이벤트는 이동할 때 트리거됩니다.
ondragleave - 이 이벤트는 마우스로 드래그하는 객체가 해당 컨테이너의 범위를 벗어날 때 트리거됩니다.
ondrop - 이 이벤트는 마우스 버튼이 눌릴 때 트리거됩니다.

위 코드

<html>
<head>
  <meta charset="UTF-8">
  <title>拖拽</title>
  <style>
    .box{width:800px;height:600px;float:left;}
    #box1{background-color:#ccc;}
    #box2{background-color:#000;}
  </style>
</head>
<body>
  <div id="box1"></div>
  <div id="box2"></div>
  <img id="img1" src="1.jpg">
  <div id="msg"></div>
</body>
<script>
var box1Div,box2Div,msgDiv,img1; 
window.onload = function(){
  box1Div = document.getElementById(&#39;box1&#39;);
  box2Div = document.getElementById(&#39;box2&#39;);
  msgDiv = document.getElementById(&#39;msg&#39;);
  img1 = document.getElementById(&#39;img1&#39;);
  box1Div.ondragover = function(e){e.preventDefault();}
  box2Div.ondragover = function(e){e.preventDefault();}
 
  img1.ondragstart = function(e){e.dataTransfer.setData(&#39;imgId&#39;,&#39;img1&#39;);}
  box1Div.ondrop = dropImghandler;
  box2Div.ondrop = dropImghandler;
}
function dropImghandler(e){
  showObj(e);//获取拖放所有信息
  showObj(e.dataTransfer);//获取文件
  e.preventDefault();
  var img = document.getElementById(e.dataTransfer.getData(&#39;imgId&#39;));
  e.target.appendChild(img);
}
function showObj(obj){
  var s = &#39;&#39;;
  for(var k in obj){s += k+":"+obj[k]+"<br/>";}
  msgDiv.innerHTML = s;
}
</script>
</html>

이 기능은 이미지를 왼쪽과 오른쪽 div로 드래그하는 방법으로는 유용하지 않을 것 같습니다. 하얼빈 맥주
다음은 백엔드 PHP에서 얻은 드래그 앤 드롭 업로드 코드입니다. $_FILES에 도달한 후 시작할 수 있습니다.

<!DOCTYPE html>
<html>
<head>
  <meta charset="UTF-8">
  <title>拖放上传</title>
  <style>
    #imgContainer{background:#ccc;width:500px;height:500px;}
  </style>
</head>
<body>
  <div id="imgContainer"></div>
  <div id="msg"></div>
</body>
<script>
var imgContainer,msgDiv;
window.onload = function(e){
  imgContainer = document.getElementById(&#39;imgContainer&#39;);
  msgDiv = document.getElementById(&#39;msg&#39;);
  imgContainer.ondragover = function(e){
    e.preventDefault();
  }
  imgContainer.ondrop = function(e){
    e.preventDefault();
    var f = e.dataTransfer.files[0];  
    //这时已经获取到文件了,具体想要用第几个文件自己处理,发post请求后端处理就行了!
 
    //下面是图片获取到之后显示在imgContainer中的流程
    // var fileReader = new FileReader();
    // fileReader.onload=function(){
    // imgContainer.innerHTML = "<img src=\""+fileReader.result+"\">"
    // }
    // fileReader.readAsDataURL(f);
    // showObj(e);  //显示上传信息
    // showObj(e.dataTransfer.files);
  }
}
function showObj(obj){
  var s = &#39;&#39;;
  for(var k in obj){s += k+":"+obj[k]+"<br/>";}
  msgDiv.innerHTML = s;
}
</script>
</html>

위는 이 기사의 전체 내용입니다. . 모든 분들의 학습에 도움이 되기를 바라며, 또한 모든 분들이 PHP 중국어 웹사이트를 응원해 주시길 바랍니다.

HTML5 js의 드래그 앤 드롭 파일 업로드 기능 구현과 관련된 더 많은 기사를 보려면 PHP 중국어 웹사이트를 주목하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.