JavaScript 实现拖拽文件进行ajax上传

预防以后需要,自己手写了一个拖拽文件上传,话不多,效果图

html 部分:

<div id="div" ondrop="drop(event)" ondragover="allowDrop(event)" ondragleave="removeDrop(event)" style="width: 400px;height: 300px;border: 1px solid black;"></div>
	

里面写了一些方法,没看懂? 没关系,看完JS就明白了这些方法的作用是干嘛的了

JS部分:

<script>
		var FormData = new FormData

		//文件移入
		function allowDrop(event) {
		    event.preventDefault();  //阻止浏览器默认事件
			event.target.style.border="3px dotted red"
		}
		//文件移除
		function removeDrop(event){
			event.preventDefault();
			event.target.style.border="1px solid black"
		}
		//当鼠标松开文件
		function drop(event) {
		    event.preventDefault();  
		    event.target.style.border="1px solid black"
		    
		   	var files = event.dataTransfer.files
		   	if(files.length==0){	//没有文件返回false
		   		return false
		   	}
		   	AddFiles(files)	 
		}
		
		function AddFiles(files){	//添加文件,for循环掉多个文件 ,支持多文件添加,这里也可以做是否为图片文件判断
			for(var i =0;i<files.length;i++){
				FormData.append("file",files[i])
				FileUpload(FormData)
			}
		}
		
		function FileUpload(FormData){	//最后将拿到的文件进行ajax上传,暂时没拿服务器测试,实际情况可能会有所出入
			 $.ajax({		///这里用了jQuery的ajax封装方法,这里还没来得及封装自己的ajax  先用了jQuery的
		            url:url,
		            type:"post",
		            data:FormData,
		            processData:false,
		            contentType:false,
		            success:function(data){
		            	
		                }
				});	
		}
		

</script>

好啦 一个大致的拖拽文件上传的框架就搭好了,然后可以自由编写你你想要的各种效果;

不足地方请多指教  

  • 1
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值