美文网首页
H5中的拖拽文件上传的简单记录

H5中的拖拽文件上传的简单记录

作者: chouchou723 | 来源:发表于2019-01-21 10:43 被阅读0次

    一样直接上完整代码

    <!DOCTYPE HTML>
    <html>
    
    <head>
        <meta charset="utf-8">
        <title>无标题文档</title>
        <style>
            .dashboard_target_box {
                width: 250px;
                height: 105px;
                border: 3px dashed #E5E5E5;
                text-align: center;
                position: absolute;
                z-index: 2000;
                top: 0;
                left: 0;
                cursor: pointer
            }
    
            .dashboard_target_box.over {
                border: 3px dashed #000;
                background: #ffa
            }
    
            .dashboard_target_messages_container {
                display: inline-block;
                margin: 12px 0 0;
                position: relative;
                text-align: center;
                height: 44px;
                overflow: hidden;
                z-index: 2000
            }
    
            .dashboard_target_box_message {
                position: relative;
                margin: 4px auto;
                font: 15px/18px helvetica, arial, sans-serif;
                font-size: 15px;
                color: #999;
                font-weight: normal;
                width: 150px;
                line-height: 20px
            }
    
            .dashboard_target_box.over #dtb-msg1 {
                color: #000;
                font-weight: bold
            }
    
            .dashboard_target_box.over #dtb-msg3 {
                color: #ffa;
                border-color: #ffa
            }
    
            #dtb-msg2 {
                color: orange
            }
    
            #dtb-msg3 {
                display: block;
                border-top: 1px #EEE dotted;
                padding: 8px 24px
            }
        </style>
    </head>
    
    <body>
        <div id="target_box" class="dashboard_target_box">
            <div id="drop_zone_home" class="dashboard_target_messages_container">
                <p id="dtb-msg2" class="dashboard_target_box_message" style="top:-44px">选择你的图片<br>
                    开始上传</p>
                <p id="dtb-msg1" class="dashboard_target_box_message" style="top:-44px">拖动图片到<br>
                    这里</p>
                </p>
            </div>
            <div>
                <img alt="">
            </div>
        </div>
        <script>
            window.onload = function () {
                var box = document.getElementById('target_box'); //获得到框体
                //要想实现拖拽,首页需要阻止浏览器默认行为
               // box.addEventListener("dragleave", function (e) {
                 //   e.preventDefault();
               // }); //拖离
               // box.addEventListener("dragenter", function (e) {
                 //   e.preventDefault();
               // }); //拖进
                box.addEventListener("dragover", function (e) {
                    e.preventDefault();
                }); //拖动,主要是对dragover进行阻止
                box.addEventListener("drop", function (e) {
    
                    e.preventDefault(); //取消默认浏览器拖拽效果
    
                    var fileList = e.dataTransfer.files; //获取文件对象
                    //fileList.length 用来获取文件的长度(其实是获得文件数量)
    
                    //检测是否是拖拽文件到页面的操作
                    if (fileList.length == 0) {
                        return;
                    }
                    //检测文件是不是图片
                    if (fileList[0].type.indexOf('image') === -1) {
                        return;
                    }
                    var div = document.createElement('div');
                    var i = document.createElement('img');
                    // i.src = window.URL.createObjectURL(fileList[0]);//调用 URL 对象的 createObjectURL 方法,传入一个 File 对象或者 Blob 对象,能生成一个链接
                    //或者使用FileReader 
                    var reader = new FileReader();
                    var is = reader.readAsDataURL(fileList[0])//读取数据之后 触发onload
                    reader.onload = function () {
                        var dataURL = reader.result;
                        i.src = dataURL;
                    }
                    div.appendChild(i);
                    document.querySelector('#target_box').appendChild(div);
                    //var img = window.webkitURL.createObjectURL(fileList[0]);
                    //拖拉图片到浏览器,可以实现预览功能
    
                    // xhr = new XMLHttpRequest();
                    // xhr.open("post", "test.php", true);
                    // xhr.setRequestHeader("X-Requested-With", "XMLHttpRequest");
    
                    // var fd = new FormData();
                    // fd.append('ff', fileList[0]);
    
                    // xhr.send(fd);
    
    
                }, false);
            }
        </script>
    </body>
    
    </html>
    

    相关文章

      网友评论

          本文标题:H5中的拖拽文件上传的简单记录

          本文链接:https://www.haomeiwen.com/subject/jzgqjqtx.html