HTML5代码:
方法一:直接表单提交
1 2 3 4 5 6 | <form name= "upform" action= "url" 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 提交
js代码:
FormData可以把它理解成一个虚拟的表单对象,它只有一个方法append,我们可以通过append向FormData里面添加各种需要提交的数据。
url:/adata/adata/payment/PaymentAction/upload.menu
----指的是你Java接受信息的action路径
_pathName=/adata//payment.jsp
-----------指的是你HTML5页面的虚拟路径。
alert(result);-------
指的是从Java后台返回的信息。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | 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代码: ?
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 | 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(); } |
|