java 拖拽上传_Java实现拖拽上传

本文详细介绍了如何使用Java实现拖拽上传功能,包括HTML5拖拽事件、XMLHttpRequest上传文件到服务器以及后台Servlet处理文件保存。示例代码展示了从文件拖放到浏览器,再到服务器的完整流程。
摘要由CSDN通过智能技术生成

Java实现拖拽上传

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

先看效果图:

0818b9ca8b590ca3270a3433284dd417.png

html>

小夜的传说最新力作!

* {

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;

}

小夜的传说最新力作!Java实现拖拽上传!!

将图片拖拽到这里

//1、文件上传HTML5 通过drag把文件拖拽到浏览器的默认事件覆盖

//文件离开

document.οndragleave=function(e){

e.preventDefault();

console.info("文件离开执行了我!!");

};

//鼠标松开文件

document.οndrοp=function(e){

e.preventDefault();

console.info("松开以后执行了我!");

};

//鼠标移动文件

document.οndragοver=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

//此处判断只能上传图片

if(fileList[i].type.indexOf("image")!=0){

alert("请上传图片");

return;

}

//图片预览  这一步需要判断是什么浏览器  大家自己判断吧

/*************************************/

img1=window.URL.createObjectURL(fileList[i]);

/*************************************/

var str="

"+fileList[i].name+"

";

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();//动态给表单赋值,传递二进制文件

//其实就相当于

formData.append("doc",fileList[i]);

//7、这一步核心的我隐藏了,需要的话请下载源码,或者看你悟性了

}

});

}

//直接调用

tm_upload();

ok,编写完前台代码,在写后台,如下:

pageEncoding="UTF-8"%>

/*

1、文件上传:

*/

request.setCharacterEncoding("utf-8");

response.setCharacterEncoding("utf-8");

//获取文件路径

String strPath=request.getRealPath("/")+"/upload";

File file =new File(strPath);

if(!file.exists())file.mkdirs();

FileItemFactory factory=new DiskFileItemFactory();

ServletFileUpload upload=new ServletFileUpload(factory);

//从请求对象中获取文件信息

List items=upload.parseRequest(request);

if(items!=null){

for(int i=0;i

Iterator iterator=items.iterator();

while(iterator.hasNext()){

FileItem item=(FileItem)iterator.next();

if(item.isFormField()){

continue;

}else{

String fileName=item.getName();

Long fileSize=item.getSize();

int pos=fileName.indexOf(".");

String ext=fileName.substring(pos,fileName.length());

fileName=UUID.randomUUID().toString()+ext;

File saveFile=new File(strPath,fileName);

item.write(saveFile);

}

}

}

}

%>

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值