- < 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)); //設置緩沖區目錄 ??
- ????????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));//設置緩沖區目錄
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找類,根據實際情況變化
- UUIDGenerator?generator= new ?UUIDGenerator(); ??
- String?autoFileName?=?generator.generate().toString();??
UUIDGenerator generator=new UUIDGenerator();
String autoFileName = generator.generate().toString();
這句是給每個上傳的文件加一個唯一標示,可用別的方法替代
- ObjectToJSON這個類是自己寫一個Object和Json互轉的類??
更多文章、技術交流、商務合作、聯系博主
微信掃碼或搜索:z360901061
微信掃一掃加我為好友
QQ號聯系: 360901061
您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對您有幫助就好】元

