首页 / HTML / HTML实现文件拖动上传
HTML实现文件拖动上传
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了HTML实现文件拖动上传,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含5388字,纯文字阅读大概需要8分钟。
内容图文
![HTML实现文件拖动上传](/upload/InfoBanner/zyjiaocheng/1191/f546bf3f515440de980f1084b66af53a.jpg)
在大型企业的开发过程中,很多比较有趣而实际的功能往往都是让大家望而却步,我给大家带来一个百度云盘和360云盘的HTML5多文件拖动上传技术: 1:记得导入:common-fileupload.jar包. 上传upload.jsp页面 <% @page import = " org.apache.struts2.json.JSONUtil " %> <% @page import = " java.io.File " %> <% @page import = " org.apache.commons.fileupload.FileItem " %> <% @page import = " org.apache.commons.fileupload.servlet.ServletFileUpload " %> <% @page import = " org.apache.commons.fileupload.disk.DiskFileItemFactory " %> <% @page import = " org.apache.commons.fileupload.FileItemFactory " %> <% @page import = " java.text.DecimalFormat " %> <% @ page language = " java " import = " java.util.* " pageEncoding = " UTF-8 " %> <% request.setCharacterEncoding( " UTF-8 " ); response.setCharacterEncoding( " UTF-8 " ); // 获取文件的上传的具体目录 String realPath = request.getRealPath( " / " ); // 定义上传的目录 String dirPath = realPath + " /upload " ; File dirFile = new File(dirPath); // 自动创建上传的目录 if (!dirFile.exists())dirFile.mkdirs(); // 上传操作 FileItemFactory factory = new DiskFileItemFactory(); // ServletFileUpload upload = new ServletFileUpload(factory); String fileName = null ; HashMap < String , Object > map = new HashMap < String , Object > (); try{ List items = upload.parseRequest(request); // 3name = null name = null if ( null ! = items){ Iterator itr = items.iterator(); while (itr.hasNext()){ FileItem item = (FileItem)itr.next(); if (item.isFormField()){ continue; } else { fileName = item.getName(); int pos = fileName.lastIndexOf( " . " ); String ext = fileName.substring(pos, fileName.length()); fileName = UUID.randomUUID().toString() + ext; // 上传文件的目录 File savedFile = new File(dirPath,fileName); item.write(savedFile); map.put( " name " ,item.getName()); // 文件的原始名称 map.put( " newName " ,fileName); // 文件的新名称 map.put( " size " ,item.getSize()); // 文件的真实大小 map.put( " url " , " upload/ " + fileName); // 获取文件的具体服务器的目录 // 我可以建立一个文件表。把上传的文件存在表中. -- 文件夹表一个文件表 --- 云盘 } } } }catch(Exception e){ } out.print(JSONUtil.serialize(map)); %> main.jsp <% @ page language = " java " import = " java.util.* " pageEncoding = " UTF-8 " %> <! DOCTYPE HTML > < html > < head > < title >潭州学院html5拖动文件上传</title><style> *{padding:0px;margin:0px} body{font-family: "微软雅黑";font-size: 12px;background: #394E48;color:#fff;} .demo{width:900px; margin:50px auto;position: relative;} #drop_area{width:100%; height:100px; border:3px dashed silver; line-height:100px; text-align:center; font-size:36px; color:#d3d3d3} #preview{width:900px; overflow:hidden;border:1px dashed silver; margin-top:10px;} #preview div{float: left;padding: 9px;text-align: center;margin:6px;background:#f9f9f9;width:195px;height: 160px;} #preview img{width: 80px;height: 80px;} #program{background:#999; height:100px;color:#d3d3d3;position: absolute;top:0px;left:0px;background:linear-gradient(#141414,red);opacity:0.5}</style></head><body><div id="main"><div class="demo"><div style="text-align: center;margin-bottom: 20px;"><h1 style="font-size: 36px;">潭州学院首席架构师--KeKe老师(QQ:792185203)</h1></div><div id="program"></div><div id="drop_area">将图片拖拽到此区域</div><div id="preview"></div></div></div><script type="text/javascript">var timer =null; //拖离事件-离开的时候调用 document.ondragleave =function(e){ e.preventDefault(); document.getElementById("drop_area").style.background="none"; console.log("拖动移动离开的时候"); }; //拖方后 document.ondrop =function(e){ e.preventDefault(); document.getElementById("drop_area").style.background="none"; document.getElementById("drop_area").innerHTML ="请稍后,文件上传中..."; var p =0; timer = setInterval(function(){ if(p>=100)p=0; document.getElementById("program").style.width=p+"%"; p++; },17); console.log("拖动抬起的时候"); }; //拖动移动的时候 document.ondragover =function(e){ e.preventDefault(); document.getElementById("drop_area").style.background="linear-gradient(#141414,#ff0000)"; console.log("拖动移动的时候"); }; document.ondragenter =function(e){ e.preventDefault(); document.getElementById("drop_area").style.background="#141414"; console.log("拖动按下的时候"); }; function tmupload(){ var box = document.getElementById("drop_area"); //拖拽区域 box.addEventListener("drop",function(e){//监听拖放后事件 e.preventDefault();//取消浏览器的默认行为//获取文件对象var fileList = e.dataTransfer.files; //检查是否拖拽文件到页面var length = fileList.length; if(length==0){ returnfalse; } for(var i=0;i<length;i++){ var img = window.webkitURL.createObjectURL(fileList[i]); var filename = fileList[i].name; var filesize = fileList[i].size; var str ="<div><img src=‘"+img+"‘><p>图片名称:"+filename+"</p><p>大小:"+filesize+"KB</p></div>"; document.getElementById("preview").innerHTML +=str; //通过XMLHttpRequest(ajax)上传var xhr =new XMLHttpRequest(); xhr.open("post","upload.jsp", true); xhr.setRequestHeader("X-Requested-With", "XMLHttpRequest"); //利用FormData动态发送表单数据var fd =new FormData(); fd.append("doc", fileList[i]); xhr.send(fd); xhr.onreadystatechange =function(){ if(xhr.readyState==4&& xhr.status==200){ setTimeout(function(){ clearInterval(timer); document.getElementById("drop_area").innerHTML ="请稍后,文件上传中..."; document.getElementById("program").style.width="0%"; },2000); } }; } }); } tmupload();//开始上传</script></body></html>
原文:http://www.cnblogs.com/zengda/p/4355039.html
内容总结
以上是互联网集市为您收集整理的HTML实现文件拖动上传全部内容,希望文章能够帮你解决HTML实现文件拖动上传所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。