基于HTML5+js+Java实现单文件文件上传到服务器功能
程序员文章站
2024-02-20 21:23:58
上传单文件到服务器  ...
上传单文件到服务器
应公司要求,在html5页面上实现上传文件到服务器,对于一个还没毕业的实习生菜鸟来说,这可不得了-----不会,网上各种百度,找各种博客还是没解决,最后还是请教了公司的大神,人家给卸了一个例子,然后根据人家写的终于把这个上传文件搞定。
好了,开始上代码。
html5代码:
<form name="upform" action="" method="post"> <input type ="file" name="myfile1" id="myfile1"/><br/> <input type ="file" name="myfile2" id="myfile2"/><br/> 备注:<input type="text" name="mydata" id="mydata"/><br/> <input type="button" value="确定" onclick="upload()"/><br/> </form>
js代码:
formdata可以把它理解成一个虚拟的表单对象,它只有一个方法append,我们可以通过append向formdata里面添加各种需要提交的数据。
url:/adata/adata/payment/paymentaction/upload.menu
----指的是你java接受信息的action路径
_pathname=/adata//payment.jsp
-----------指的是你html5页面的虚拟路径。
alert(result);-------
指的是从java后台返回的信息。
function upload() { mydata = document.getelementbyid("mydata").files[0]; formdata = new formdata(); 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代码:
string savepath = "d:/";//存储路径 string retmsg = "";//定义将返回给客户端的信息 try { if (servletfileupload.ismultipartcontent(request)) { list<fileitem> items = new servletfileupload(new diskfileitemfactory()).parserequest(request); for (fileitem item : items) { if (!item.isformfield()) {// 过滤掉表单中非文件域 string filetype = item.getname().substring(item.getname().lastindexof(".") + 1).tolowercase();//文件类型 string filename = new date().gettime() + "." + filetype; //保存的文件名 string filepath = savepath + "\\" + filename; //保存的文件路径 bufferedinputstream in = new bufferedinputstream(item.getinputstream());// 获得文件输入流 bufferedoutputstream out = new bufferedoutputstream(new fileoutputstream(new file(filepath)));// 获得文件输出流 org.apache.commons.fileupload.util.streams.copy(in, out, true);// 开始把文件写到指定的上传文件夹 retmsg += "上传文件成功!"; in.close(); out.close(); } } } response.setcontenttype("text/html;charset=utf8"); printwriter pw = response.getwriter(); pw.print(retmsg); pw.flush(); pw.close(); //根据自己需要返回页面一个 retmsg // return retmsg 证明上传成功 } catch (exception e) { e.printstacktrace(); }
总结
以上所述是小编给大家介绍的基于html5+js+java实现单文件文件上传到服务器功能,希望对大家有所帮助
上一篇: Java继承概念详细解读