我叫Ezreal 是一名探险家,.

js拖拽上传图片

h5实现拖拽上传图片

本文将为大家介绍如何通过js实现拖拽上传图片。

首先我们要禁用调浏览器默认的拖拽事件:

 1 window.onload = function(){
 2                 //拖离
 3                 document.addEventListener('dragleave',function(e){e.preventDefault();});
 4                 //拖后放
 5                 document.addEventListener('drop',function(e){e.preventDefault();});
 6                 //拖进
 7                 document.addEventListener('dragenter',function(e){e.preventDefault();});
 8                 //拖来拖去
 9                 document.addEventListener('dragover',function(e){e.preventDefault();});
10 };

然后在网页上定义一个拖拽放置区域,也就是我们要将图片放置回显的区域:

1 <div id="dragImg"></div>

绑定拖拽事件:

 1 var box = document.getElementById("dragImg"); 

box.addEventListener("drop",function(e){
            e.preventDefault(); //取消默认浏览器拖拽效果
            var fileList = e.dataTransfer.files; //获取文件对象
            if(fileList.length == 0){return false;}
            if(fileList[0].type.indexOf('image') === -1){
                alert('您拖的不是图片!')
                return false;
            }
            var img = window.URL.createObjectURL(fileList[0]);
//          var filesize = Math.floor((fileList[0].size)/1024); 
            $("#dragImg").css({"background":"url("+img+") no-repeat center center","backgroundSize":"100% 100%"});
            var imgDatatype = filename.split(".")[1];
            var formData = new FormData();
           formData.append("name",fileList[0],imgDatatype);  //name:为一半表单上传时的元素name是和后台约定好的
            $.ajax({
                    type:"post",
                    url:'your Ajax url',//ajaxurl
                    async:false,
                    dataType:"text",
                    data:formData,
                    processData : false,
                    contentType : false,
                    success:function(data){
                        if(data){                           
                 $("#dragImg").css({"background":"url("+data+") no-repeat center center","backgroundSize":"100% 100%"}); }else{ console.log(data) } },error:function(e){ console.log(e) } }) },false);

这就是图片拖拽上传的前端处理方法,over!

posted @ 2018-01-06 10:53  .伊泽瑞尔  阅读(941)  评论(2编辑  收藏  举报