- < form ? id = 'myform' ? enctype = "multipart/form-data" ? action = "<%=webapp?%>/UploadFileServlet" ??
- ? method = "post" ? target = "hidden_frame" > ??
- < input ? type = "file" ? name = "file" ? id = "file" ? size = "10" ? onchange = "this.form.submit();" ? /> ??
- < iframe ? name = 'hidden_frame' ? id = "hidden_frame" ? style = 'display:none' > </ iframe > ??
- </ form > ??
<form id='myform' enctype="multipart/form-data" action="<%=webapp %>/UploadFileServlet" ?method="post" target="hidden_frame"> <input type="file" name="file" id="file" size="10" onchange="this.form.submit();" /> <iframe name='hidden_frame' id="hidden_frame" style='display:none'></iframe> </form>
?
webapp是項目的路徑名
String webapp=request.getContextPath();
?
后臺代碼:
?
- import ?java.io.File; ??
- import ?java.io.IOException; ??
- import ?java.io.PrintWriter; ??
- import ?java.util.ArrayList; ??
- import ?java.util.HashMap; ??
- import ?java.util.List; ??
- import ?java.util.Map; ??
- ??
- import ?javax.servlet.ServletException; ??
- import ?javax.servlet.http.HttpServletRequest; ??
- import ?javax.servlet.http.HttpServletResponse; ??
- ??
- import ?org.apache.commons.fileupload.FileItem; ??
- import ?org.apache.commons.fileupload.disk.DiskFileItemFactory; ??
- import ?org.apache.commons.fileupload.servlet.ServletFileUpload; ??
- import ?org.apache.log4j.Logger; ??
- ??
- import ?com.siyue.ciap.beans.dic.EnvBean; ??
- import ?com.siyue.ciap.dao.cms.UUIDGenerator; ??
- import ?com.siyue.ciap.dao.phone.ReadFileUtil; ??
- import ?com.siyue.ciap.dao.uitls.ObjectToJSON; ??
- import ?com.siyue.ciap.service.uitl.SpringFacesUtil; ??
- ??
- ??
- public ? class ?UploadFileServlet? extends ?javax.servlet.http.HttpServlet? implements ?javax.servlet.Servlet?{ ??
- ??
- ???? private ? static ? final ?Logger?logger?=?Logger.getLogger(UploadFileServlet. class ); ??
- ???? ??
- ???? protected ? void ?doGet(HttpServletRequest?request,?HttpServletResponse?response) ??
- ???????????? throws ?ServletException,?IOException?{ ??
- ???????? this .doPost(request,?response); ??
- ????} ??
- ??
- ???? protected ? void ?doPost(HttpServletRequest?request,?HttpServletResponse?response) ??
- ???????????? throws ?ServletException,?IOException?{ ??
- ????????System.out.println( "execute?Upload?File................." ); ??
- ????????PrintWriter?out?=?response.getWriter(); ??
- ????????EnvBean?envBean?=(EnvBean)SpringFacesUtil ??
- ???????????????.getBean( this .getServletContext(),? "EnvBean" ); ??
- ????????String?uploadPath?=?envBean.getEnv().getProperty( "upload_dest" ); //上傳的路徑 ??
- ????????UUIDGenerator?generator= new ?UUIDGenerator(); ??
- ????????DiskFileItemFactory?factory?=? new ?DiskFileItemFactory(); ??
- ????????factory.setSizeThreshold( 4096 ); //設置緩沖 ??
- ????????factory.setRepository( new ?File(uploadPath)); //設置緩沖區(qū)目錄 ??
- ????????ServletFileUpload?upload?=? new ?ServletFileUpload(factory); ??
- ???????? boolean ?isMultipart?=?ServletFileUpload.isMultipartContent(request); ??
- ????????upload.setSizeMax( 1024000000 ); ??
- ????????List?items?=? new ?ArrayList(); ??
- ???????? try ?{ ??
- ????????????items?=?upload.parseRequest(request); ??
- ????????????Map?rtnMap?=? new ?HashMap(); ??
- ???????????? for ( int ?i= 0 ;i<items.size();i++)?{ ??
- ????????????????FileItem?item?=?(FileItem)?items.get(i); ??
- ????????????????String?autoFileName?=?generator.generate().toString(); ??
- ???????????????? if ( "" .equals(item.getName())) continue ; ??
- ???????????????? //獲得文件名 ??
- ????????????????String?fileName?=?item.getName().substring(item.getName() ??
- ???????????????????????????????.lastIndexOf( "\\" )+ 1 ,?item.getName().length()); ??
- ???????????????? //獲得文件后綴名 ??
- ????????????????String?extName?=?fileName ??
- ???????????????????????????????.substring(fileName.lastIndexOf( "." )+ 1 ,?fileName.length()); ??
- ???????????????? //判斷文件類型 ??
- ???????????????? if (!( "xls" .equalsIgnoreCase(extName)?||? "txt" .equalsIgnoreCase(extName)?||? ??
- ???????????????????????? "csv" .equalsIgnoreCase(extName)))?{ ??
- ????????????????????out.print( "<script>alert('您上傳的文件不是excel|txt|csv類型!');</script>" ); ??
- ????????????????????out.close(); ??
- ????????????????} else ?{ ??
- ????????????????????String?fileOnlyName?=?uploadPath?+?autoFileName?+? "." ?+?extName; ??
- ????????????????????item.write( new ?File(fileOnlyName)); ??
- ????????????????????Map?excelMap?=? null ; ??
- ???????????????????? if ( "xls" .equalsIgnoreCase(extName))?{ ??
- ????????????????????????System.out.println( "fileOnlyName------>" +fileOnlyName); ??
- ????????????????????????excelMap?=?ReadFileUtil.readSheetName(fileOnlyName); ??
- ????????????????????} ??
- ????????????????????rtnMap.put( "file" ,?fileOnlyName); ??
- ????????????????????rtnMap.put( "sheet" ,?excelMap); ??
- ????????????????????out.print( "<script>parent.callBack(" +ObjectToJSON.MapToJsonStr(rtnMap)+ ")</script>" ); ??
- ????????????????????out.close(); ??
- ????????????????} ??
- ????????????} ??
- ????????}? catch ?(Exception?e)?{ ??
- ????????????e.printStackTrace(); ??
- ????????} ??
- ????} ??
- ???? ??
- }??
import java.io.File; import java.io.IOException; import java.io.PrintWriter; import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; import javax.servlet.ServletException; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import org.apache.commons.fileupload.FileItem; import org.apache.commons.fileupload.disk.DiskFileItemFactory; import org.apache.commons.fileupload.servlet.ServletFileUpload; import org.apache.log4j.Logger; import com.siyue.ciap.beans.dic.EnvBean; import com.siyue.ciap.dao.cms.UUIDGenerator; import com.siyue.ciap.dao.phone.ReadFileUtil; import com.siyue.ciap.dao.uitls.ObjectToJSON; import com.siyue.ciap.service.uitl.SpringFacesUtil; public class UploadFileServlet extends javax.servlet.http.HttpServlet implements javax.servlet.Servlet { private static final Logger logger = Logger.getLogger(UploadFileServlet.class); protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { this.doPost(request, response); } protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { System.out.println("execute Upload File................."); PrintWriter out = response.getWriter(); EnvBean envBean =(EnvBean)SpringFacesUtil .getBean(this.getServletContext(), "EnvBean"); String uploadPath = envBean.getEnv().getProperty("upload_dest");//上傳的路徑 UUIDGenerator generator=new UUIDGenerator(); DiskFileItemFactory factory = new DiskFileItemFactory(); factory.setSizeThreshold(4096);//設置緩沖 factory.setRepository(new File(uploadPath));//設置緩沖區(qū)目錄 ServletFileUpload upload = new ServletFileUpload(factory); boolean isMultipart = ServletFileUpload.isMultipartContent(request); upload.setSizeMax(1024000000); List items = new ArrayList(); try { items = upload.parseRequest(request); Map rtnMap = new HashMap(); for(int i=0;i<items.size();i++) { FileItem item = (FileItem) items.get(i); String autoFileName = generator.generate().toString(); if("".equals(item.getName()))continue; //獲得文件名 String fileName = item.getName().substring(item.getName() .lastIndexOf("\\")+1, item.getName().length()); //獲得文件后綴名 String extName = fileName .substring(fileName.lastIndexOf(".")+1, fileName.length()); //判斷文件類型 if(!("xls".equalsIgnoreCase(extName) || "txt".equalsIgnoreCase(extName) || "csv".equalsIgnoreCase(extName))) { out.print("<script>alert('您上傳的文件不是excel|txt|csv類型!');</script>"); out.close(); }else { String fileOnlyName = uploadPath + autoFileName + "." + extName; item.write(new File(fileOnlyName)); Map excelMap = null; if("xls".equalsIgnoreCase(extName)) { System.out.println("fileOnlyName------>"+fileOnlyName); excelMap = ReadFileUtil.readSheetName(fileOnlyName); } rtnMap.put("file", fileOnlyName); rtnMap.put("sheet", excelMap); out.print("<script>parent.callBack("+ObjectToJSON.MapToJsonStr(rtnMap)+")</script>"); out.close(); } } } catch (Exception e) { e.printStackTrace(); } } }
?
- EnvBean?envBean?=(EnvBean)SpringFacesUtil ??
- ???????????????.getBean( this .getServletContext(),? "EnvBean" ); ??
- ????????String?uploadPath?=?envBean.getEnv().getProperty( "upload_dest" ); //上傳的路徑 ??
EnvBean envBean =(EnvBean)SpringFacesUtil .getBean(this.getServletContext(), "EnvBean"); String uploadPath = envBean.getEnv().getProperty("upload_dest");//上傳的路徑
這句是調Spring找類,根據(jù)實際情況變化
- UUIDGenerator?generator= new ?UUIDGenerator(); ??
- String?autoFileName?=?generator.generate().toString();??
UUIDGenerator generator=new UUIDGenerator(); String autoFileName = generator.generate().toString();
這句是給每個上傳的文件加一個唯一標示,可用別的方法替代
- ObjectToJSON這個類是自己寫一個Object和Json互轉的類??
更多文章、技術交流、商務合作、聯(lián)系博主
微信掃碼或搜索:z360901061

微信掃一掃加我為好友
QQ號聯(lián)系: 360901061
您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對您有幫助就好】元
