主頁 > 知識(shí)庫 > HTML5拖拉上傳文件的簡(jiǎn)單實(shí)例

HTML5拖拉上傳文件的簡(jiǎn)單實(shí)例

熱門標(biāo)簽:電話機(jī)器人如何 杭州營銷電銷機(jī)器人供應(yīng)商 飛亞外呼系統(tǒng) 貸款電銷人工和機(jī)器人哪個(gè)好 百應(yīng)電銷機(jī)器人產(chǎn)業(yè) 聯(lián)通400電話申請(qǐng) 高德地圖標(biāo)注賓館位置 電視購物電銷外呼系統(tǒng) 西寧智能外呼系統(tǒng)加盟

在HTML5的pc上面實(shí)現(xiàn)了相當(dāng)多的功能,工作中也用到了拖拉上傳,特地記錄下該功能

在拖動(dòng)目標(biāo)上觸發(fā)事件 (源元素):

ondragstart - 用戶開始拖動(dòng)元素時(shí)觸發(fā)

ondrag - 元素正在拖動(dòng)時(shí)觸發(fā)

ondragend - 用戶完成元素拖動(dòng)后觸發(fā)

釋放目標(biāo)時(shí)觸發(fā)的事件:

ondragenter - 當(dāng)被鼠標(biāo)拖動(dòng)的對(duì)象進(jìn)入其容器范圍內(nèi)時(shí)觸發(fā)此事件

ondragover - 當(dāng)某被拖動(dòng)的對(duì)象在另一對(duì)象容器范圍內(nèi)拖動(dòng)時(shí)觸發(fā)此事件

ondragleave - 當(dāng)被鼠標(biāo)拖動(dòng)的對(duì)象離開其容器范圍內(nèi)時(shí)觸發(fā)此事件

ondrop - 在一個(gè)拖動(dòng)過程中,釋放鼠標(biāo)鍵時(shí)觸發(fā)此事件

上代碼

<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>
    <div id="box1" class="box"></div>
    <div id="box2" class="box"></div>
    <img id="img1" src="1.jpg">
    <div id="msg"></div>
</body>
<script>
var box1Div,box2Div,msgDiv,img1; 
window.onload = function(){
    box1Div = document.getElementById('box1');
    box2Div = document.getElementById('box2');
    msgDiv = document.getElementById('msg');
    img1 = document.getElementById('img1');
    box1Div.ondragover = function(e){e.preventDefault();}
    box2Div.ondragover = function(e){e.preventDefault();}

    img1.ondragstart = function(e){e.dataTransfer.setData('imgId','img1');}
    box1Div.ondrop = dropImghandler;
    box2Div.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/>";}
    msgDiv.innerHTML = s;
}
</script>
</html>

該功能是可以將圖片拖拉到左右兩個(gè)div中的方法,我覺得沒啥用,可以當(dāng)作哈啤

下面是拖拉上傳代碼,后端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>
    <div id="imgContainer"></div>
    <div id="msg"></div>
</body>
<script>
var imgContainer,msgDiv;
window.onload = function(e){
    imgContainer = document.getElementById('imgContainer');
    msgDiv = document.getElementById('msg');
    imgContainer.ondragover = function(e){
        e.preventDefault();
    }
    imgContainer.ondrop = function(e){
        e.preventDefault();
        var f = e.dataTransfer.files[0];   
        //這時(shí)已經(jīng)獲取到文件了,具體想要用第幾個(gè)文件自己處理,發(fā)post請(qǐng)求后端處理就行了!

        //下面是圖片獲取到之后顯示在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/>";}
    msgDiv.innerHTML = s;
}
</script>
</html>

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

標(biāo)簽:邯鄲 安慶 內(nèi)蒙古 晉中 煙臺(tái) 牡丹江 玉溪 撫州

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《HTML5拖拉上傳文件的簡(jiǎn)單實(shí)例》,本文關(guān)鍵詞  HTML5,拖拉,上傳,文件,的,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請(qǐng)?zhí)峁┫嚓P(guān)信息告之我們,我們將及時(shí)溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《HTML5拖拉上傳文件的簡(jiǎn)單實(shí)例》相關(guān)的同類信息!
  • 本頁收集關(guān)于HTML5拖拉上傳文件的簡(jiǎn)單實(shí)例的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章