欢迎访问悦橙教程(wld5.com),关注java教程。悦橙教程  java问答|  每日更新
页面导航 : > > 文章正文

Java实现拖拽上传,java拖拽上传,在项目开发中由于实际需求

来源: javaer 分享于  点击 30121 次 点评:28

Java实现拖拽上传,java拖拽上传,在项目开发中由于实际需求


在项目开发中由于实际需求,需要开发拖拽上传的功能,ok!

先看效果图:jsp上传前端代码:```java <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>小夜的传说最新力作!</title>
<style type="text/css">
* {
padding: 0px;
margin: 0px;
}

body {      background: #394E48;      font-size: 14px;      font-family: "微软雅黑";  }.title {      text-align: center;      color: #fff;      margin-top: 50px;  }.demo {      width: 900px;      height: 140px;      margin: 50px auto;  }.drag-area {      width: 100%;      height: 100px;      border: 3px dashed #fff;      text-align: center;      line-height: 100px;      color: #fff;      font-size: 36px;      font-weight: 700;  }}  .preview div {      width: 195px;      overflow: hidden;      border: 1px dashed silver;      margin-top: 10px;      float: left;      padding: 9px;      text-align: center;      height: 168px;  }.preview img {      width: 80px;      height: 80px;  }  </style>  </head>  <body>      <h1 class="title">小夜的传说最新力作!Java实现拖拽上传!!</h1>       <div class="demo">          <div class="drag-area" id="upload-area">              将图片拖拽到这里          </div>          <!-- 图片预览 -->          <div id="preview" class="preview"></div>       </div>  </body>  <script type="text/javascript">      //1、文件上传HTML5 通过drag把文件拖拽到浏览器的默认事件覆盖      //文件离开      document.ondragleave=function(e){      e.preventDefault();          console.info("文件离开执行了我!!");      };      //鼠标松开文件      document.ondrop=function(e){      e.preventDefault();          console.info("松开以后执行了我!");      };      //鼠标移动文件      document.ondragover=function(e){      e.preventDefault();          console.info("文件移动以后执行了我!");      };    function tm_upload(){          var img1="";          var uploadArea=document.getElementById("upload-area");          //2、通过HTML5拖拽事件,ondrop,然后通过拖动区域监听浏览器的drop事件达到文件上传的目的          uploadArea.addEventListener("drop", function(e){              e.preventDefault();              //3、从事件event中获取拖拽到浏览器的文件信息              var fileList=e.dataTransfer.files;              for(var i=0;i<fileList.length;i++){                  //此处判断只能上传图片                  if(fileList[i].type.indexOf("image")!=0){                      alert("请上传图片");                      return;                               }                  //图片预览  这一步需要判断是什么浏览器  大家自己判断吧                  /*************************************/                  img1=window.URL.createObjectURL(fileList[i]);                  /*************************************/                  var str="<div><img src='"+img1+"'/><p>"+fileList[i].name+"</p></div>";                  document.getElementById("preview").innerHTML +=str;                var fileName=fileList[i].name;                  console.info(fileName);                  var fileSize=fileList[i].size;                  console.info(fileSize);                  //4、通过XMLHttpRequest上传文件到服务器  就是一个ajax请求                  var xhr=new XMLHttpRequest();                  //5、这里需要先写好一个data.jsp的上传文件,当然,你写成servlet或者是action都可以                  xhr.open("post","data.jsp",true);                  xhr.setRequestHeader("X-Request-Width", "XMLHttpRequest");                  //6、通过HTML5 FormData动态设置表单元素                  var formData=new FormData();//动态给表单赋值,传递二进制文件                  //其实就相当于<input type="file" name="file"/>                  formData.append("doc",fileList[i]);                  xhr.send(formData);              }          });      }      //直接调用      tm_upload();  </script>  </html>
ok,编写完前台代码,在写后台,如下:```javaNone

ok,至此,就完成拖拽上传的功能,当然这只是粗略版本,我已将代码优化为插件可以直接使用了!!

源码下载:拖拽上传源码

相关栏目:

用户点评