drag 拖拽上传

drag文件拖拽上传

drag阻止默认事件

  //拖拽文件上传默认事件阻止
    $(document).on({
        dragleave:function(e){
            e.preventDefault();
        },
        drop:function(e){
            e.preventDefault();
        },
        dragenter:function(e){
            e.preventDefault();
        },
        dragover:function(e){
            e.preventDefault();
        }

    });

### drag拖拽样式改变

 var drop_zone = document.getElementById("drop_area");
     //文件拖拽上传事件
    drop_zone.addEventListener("drop",function (event) {
        //拖拽结束后的样式
        $("#drop_area").css('border','5px dashed #ccc');
        //获取拖拽上传文件
        var files = event.dataTransfer.files;
        //文件上传处理函数
        formHandler(files);
    });
    window.addEventListener("dragover", function( event ) {
        $("#drop_area").css('border','5px dashed #00C0EF');

    }, false);
    window.addEventListener("dragleave", function( event ) {
        $("#drop_area").css('border','5px dashed #ccc');

    }, false);

    document.getElementById('drop_area').addEventListener('dragover',function (event) {
        //阻止默认事件
        event.preventDefault();
        $("#drop_area").css('border','5px solid #00C0EF');
        //阻止事件冒泡
        event.stopPropagation();
    },false);
文件上传处理函数
function formHandler(fileList) {
        formDataInit();
        fileRender(fileList);
        fileCount();
    }
        //表单对象初始化
        var allFile = [];
        var form = document.getElementById("upload-form");
        var formData = new FormData(form);
        function formDataInit() {
            var norm = $("#norm").val();
            var major = $("#major").val();
            var type = $("#type").val();
            formData.set("norm",norm);
            formData.set("major",major);
            formData.set("type",type);
        }
//文件列表渲染
    function fileRender(fileList) {
        var fileError = 0;
        $.each(fileList, function (index, item) {
            var fileName = item.name;
            var fileEnd = fileName.substring(fileName.indexOf("."));
            //判断上传文件格式
            if (fileEnd == ".xlsx") {

                $("#fileUpload").css('display','inline');
                $("#fileDelete").css('display','inline');
                //将文件加入allFile中
                allFile.push(item);

                $('#files').append( '<tr style="padding-top: 7px;">' +
                    '<td>'+fileName+'</td>' +
                    '<td>'+(item.size / 1024).toFixed(2)+'K</td>' +
                    '<td><input type="button" class="btn btn-danger delete" value="取消"></td>' +
                    '</tr>');
                formData.append('UploadForm[excelFiles][]',item);
            } else {
                fileError++;
            }
        });
        if (fileError > 0) {
            alert("只能上传 “.xlsx” 格式的文件!");
        }
    }
    //文件计数
    function fileCount() {
        var fileCount = $('#files').find('tr').length;
        if(fileCount > 0){
            $('#fileName').html('共上传 ' + fileCount + ' 个文件');
        }else {
            $('#fileName').html('您还没有选择文件哦!');
            $("#fileUpload").css("display","none");
            $("#fileDelete").css("display","none");
        }
    }
文件取消上传事件
 $('#files').on('click','.delete',function (e) {
        var saveFile = [];
        var deleteName = e.target.parentNode.previousElementSibling.previousElementSibling.textContent;
        var deleteIn;
        $.each(allFile,function (index, item) {
            if(item.name == deleteName){
                deleteIn = index;
            }else {
                saveFile.push(item);
            }
        });
        allFile.splice(deleteIn,1);
        //表单数据重置
        formData.delete('UploadForm[excelFiles][]');

        $.each(saveFile,function (index, item) {
            formData.append('UploadForm[excelFiles][]',item);
        });

        e.target.parentNode.parentNode.remove();
        fileCount();
    });
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Selenium 是一个广泛使用的自动化测试工具,它主要用于浏览器自动化。当涉及到网页应用程序交互时,如果需要模拟用户拖拽文件上传的操作,Selenium 可以通过 JavaScript 的 `dragAndDrop` 功能来实现。以下是使用 Selenium 进行文件拖拽上传的一般步骤: 1. **定位元素**:首先,你需要找到可拖拽的目标区域(通常是文件输入框或指定的区域)和待上传的文件元素。这通常通过 `WebElement` 对象完成,比如 `driver.findElement(By.id("fileInput"))`。 2. **鼠标模拟**:在 Python 中,你可以使用 `ActionChains` 类来创建和执行一系列鼠标动作。例如: ```python from selenium.webdriver.common.action_chains import ActionChains action = ActionChains(driver) ``` 3. **准备拖动**:设置源文件的路径和目标区域的位置,然后开始拖动操作: ```python source_file = driver.find_element_by_xpath("//input[@type='file']") target_area = driver.find_element_by_id("dropZone") action.click_and_hold(source_file).move_to_element(target_area).release().perform() ``` 4. **触发上传**:如果拖放后没有自动上传,可能还需要触发点击上传按钮或者检查是否有额外的事件需要触发,例如 `target_area.send_keys(Keys.RETURN)`。 5. **等待上传完成**:如果需要,你可以设置一个等待条件来确认文件是否已经成功上传,比如检查服务器返回的状态码或者页面上的反馈消息。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值