600字范文,内容丰富有趣,生活中的好帮手!
600字范文 > java文件异步上传_java 异步上传文件

java文件异步上传_java 异步上传文件

时间:2019-09-08 01:43:28

相关推荐

java文件异步上传_java 异步上传文件

我们的java上传文件,需要form同步上传,并且需要设置enctype为multipart/form-data。

如果将form使用ajax异步提交的话,将会报错说enctype不是multipart/form-data类型

但有时候确实又有酱紫的需求,可以实现,需要借助jquery.form.js 插件

插件下载地址为:

下面贴出关键性代码

jsp代码为:

指定文件名:

上传文件:

functiondoUpload(){

varformData=newFormData($("#uploadForm")[0]);

$.ajax({

url:'${pageContext.request.contextPath}/UploadHandleServlet',

type:'POST',

data:formData,

async:false,

cache:false,

contentType:false,

processData:false,

success:function(returndata){

alert(returndata);

},

error:function(returndata){

alert(returndata);

}

});

}

后台代码不变,和普通form上传代码一样

SimpleDateFormatsdf1=newSimpleDateFormat("yyyyMMddHHmmss");

StringsavePath=request.getSession().getServletContext().getRealPath("/WEB-INF/upload");

Filefile=newFile(savePath);

if(!file.exists()){

file.mkdir();

}

Stringmessage="";

try{

DiskFileItemFactoryfactory=newDiskFileItemFactory();

factory.setSizeThreshold(1024*100);

factory.setRepository(file);

ServletFileUploadupload=newServletFileUpload(factory);

upload.setHeaderEncoding("UTF-8");

Listlist=upload.parseRequest(request);

//正则匹配,过滤路径取文件名

StringregExp=".+\\\\(.+)$";

Patternp=pile(regExp);

StringfileName="";

for(FileItemitem:list){

if(item.isFormField()){

Stringname=item.getFieldName();

Stringvalue=item.getString("UTF-8");

System.out.println(name+"="+value);

}else{

Stringname=item.getName();

name=name.substring(name.lastIndexOf("\\")+1);

fileName=savePath+"/"+sdf1.format(newDate())+"_"+name;

item.write(newFile(fileName));

}

}

message="文件上传成功!";

}catch(Exceptione){

message="文件上传失败!";

e.printStackTrace();

}

亲测有用

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。