H5는 드래그 앤 드롭 파일 업로드를 실현합니다.

php中世界最好的语言
풀어 주다: 2018-03-26 14:22:29
원래의
1901명이 탐색했습니다.

이번에는 H5에서 파일 업로드를 위한 드래그 앤 드롭을 소개하겠습니다. H5에서 파일 업로드를 위한 드래그 앤 드롭 구현에 대한 주의사항은 무엇인가요?

저는 HTML5 PC에서 꽤 많은 기능을 구현했습니다. 작업에서도 드래그 앤 드롭 업로드를 사용합니다. 특별히 이 기능을 기록했습니다.

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

ondragstart - 요소가 드래그되기 시작할 때 사용자가 트리거됨

ondrag - 요소가 드래그될 때 트리거됨

ondragend - 사용자가 요소 드래그를 완료한 후 트리거됨

대상이 해제될 때 트리거되는 이벤트:

ondragenter - 마우스로 드래그할 때 이 이벤트는 객체가 해당 컨테이너의 범위에 들어갈 때 트리거됩니다.

ondragover - 드래그된 객체가 다른 객체의 컨테이너 범위 내로 드래그될 때 이 이벤트가 트리거됩니다.

ondragleave - 언제 마우스로 드래그하는 개체가 해당 컨테이너의 범위를 벗어납니다. 이 이벤트는

ondrop일 때 트리거됩니다. - 드래그 프로세스 중에 이 이벤트는 마우스 버튼을 놓을 때 트리거됩니다.

위의 코드

<html lang="en">
<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>
    <p id="box1" class="box"></p>
    <p id="box2" class="box"></p>
    <img id="img1" src="1.jpg">
    <p id="msg"></p>
</body>
<script>
var box1p,box2p,msgp,img1; 
window.onload = function(){
    box1p = document.getElementById('box1');
    box2p = document.getElementById('box2');
    msgp = document.getElementById('msg');
    img1 = document.getElementById('img1');
    box1p.ondragover = function(e){e.preventDefault();}
    box2p.ondragover = function(e){e.preventDefault();}
    img1.ondragstart = function(e){e.dataTransfer.setData('imgId','img1');}
    box1p.ondrop = dropImghandler;
    box2p.ondrop = dropImghandler;
}
function dropImghandler(e){
    showObj(e);//获取拖放所有信息
    showObj(e.dataTransfer);//获取文件
    e.preventDefault();
    var img = document.getElementById(e.dataTransfer.getData('imgId'));
    e.target.appendChild(img);
}
function showObj(obj){
    var s = '';
    for(var k in obj){s += k+":"+obj[k]+"<br/>";}
    msgp.innerHTML = s;
}
</script>
</html>
로그인 후 복사
이 함수는 사진을 왼쪽과 오른쪽으로 드래그하면 쓸모가 없을 것 같습니다. 하얼빈 맥주로 사용할 수 있습니다

다음은 백엔드 PHP가 $_FILES를 얻은 후 시작될 수 있습니다

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>拖放上传</title>
    <style>
        #imgContainer{background:#ccc;width:500px;height:500px;}
    </style>
</head>
<body>
    <p id="imgContainer"></p>
    <p id="msg"></p>
</body>
<script>
var imgContainer,msgp;
window.onload = function(e){
    imgContainer = document.getElementById('imgContainer');
    msgp = document.getElementById('msg');
    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 = '';
    for(var k in obj){s += k+":"+obj[k]+"<br/>";}
    msgp.innerHTML = s;
}
</script>
</html>
로그인 후 복사
더 흥미로운 정보를 보려면 다른 PHP 중국어 웹사이트 관련 기사를 참고하세요!

추천 자료:

H5가 제약 조건 확인 API를 사용하는 방법

postMessage를 통해 도메인 간 및 창 간 메시징을 구현하는 방법

위 내용은 H5는 드래그 앤 드롭 파일 업로드를 실현합니다.의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

관련 라벨:
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿
회사 소개 부인 성명 Sitemap
PHP 중국어 웹사이트:공공복지 온라인 PHP 교육,PHP 학습자의 빠른 성장을 도와주세요!