基于HTML5+js+Java实现单文件文件上传到服务器功能
上传单文件到服务器
应公司要求,在HTML5页面上实现上传文件到服务器,对于一个还没毕业的实习生菜鸟来说,这可不得了-----不会,网上各种百度,找各种博客还是没解决,最后还是请教了公司的大神,人家给卸了一个例子,然后根据人家写的终于把这个上传文件搞定。
好了,开始上代码。
HTML5代码:
备注:
js代码:
FormData可以把它理解成一个虚拟的表单对象,它只有一个方法append,我们可以通过append向FormData里面添加各种需要提交的数据。
url:/adata/adata/payment/PaymentAction/upload.menu----指的是你Java接受信息的action路径
_pathName=/adata//payment.jsp-----------指的是你HTML5页面的虚拟路径。
alert(result);-------指的是从Java后台返回的信息。
functionupload(){
mydata=document.getElementById("mydata").files[0];
formData=newFormData();
formData.append("mydata",mydata);
$.ajax({
contentType:"multipart/form-data",
url:"/adata/adata/payment/PaymentAction/upload.menu?_pathName=/adata//payment.jsp",
type:"POST",
data:formData,
dataType:"text",
processData:false,//告诉jQuery不要去处理发送的数据
contentType:false,//告诉jQuery不要去设置Content-Type请求头
success:function(result){
alert(result);
}
});
}
Java代码:
StringsavePath="d:/";//存储路径
StringretMsg="";//定义将返回给客户端的信息
try{
if(ServletFileUpload.isMultipartContent(request)){
Listitems=newServletFileUpload(newDiskFileItemFactory()).parseRequest(request);
for(FileItemitem:items){
if(!item.isFormField()){//过滤掉表单中非文件域
StringfileType=item.getName().substring(item.getName().lastIndexOf(".")+1).toLowerCase();//文件类型
StringfileName=newDate().getTime()+"."+fileType;//保存的文件名
StringfilePath=savePath+"\\"+fileName;//保存的文件路径
BufferedInputStreamin=newBufferedInputStream(item.getInputStream());//获得文件输入流
BufferedOutputStreamout=newBufferedOutputStream(newFileOutputStream(newFile(filePath)));//获得文件输出流
org.apache.commons.fileupload.util.Streams.copy(in,out,true);//开始把文件写到指定的上传文件夹
retMsg+="上传文件成功!";
in.close();
out.close();
}
}
}
response.setContentType("text/html;charset=utf8");
PrintWriterpw=response.getWriter();
pw.print(retMsg);
pw.flush();
pw.close();
//根据自己需要返回页面一个retMsg
//returnretMsg证明上传成功
}catch(Exceptione){
e.printStackTrace();
}
总结
以上所述是小编给大家介绍的基于HTML5+js+Java实现单文件文件上传到服务器功能,希望对大家有所帮助,如果大家有任何疑问欢迎给我留言,小编会及时回复大家的!