其实上传文件到指定目录很简单,用apache的common-fileupload 就可以实现 给你个例子,自己修改下
import java.io.File;
import java.io.IOException;
import java.io.PrintWriter;
import java.util.ArrayList;
import java.util.Calendar;
import java.util.Iterator;
import java.util.List;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.apache.commons.fileupload.FileItem;
import org.apache.commons.fileupload.FileUploadBase;
import org.apache.commons.fileupload.FileUploadException;
import org.apache.commons.fileupload.disk.DiskFileItemFactory;
import org.apache.commons.fileupload.servlet.ServletFileUpload;
import com.hkc.purview.excelParse.ParseExecl;
import com.hkc.purview.util.HibernateUtil;
import com.hkc.purview.vo.Cux_cst_item_cost_temp;
public class UploadExcel extends HttpServlet {
/**
*
*/
private static final long serialVersionUID = 1L;
/**
* Constructor of the object.
*/
public UploadExcel() {
super();
}
/**
* The doGet method of the servlet. <br>
*
* This method is called when a form has its tag value method equals to get.
*
* @param request the request send by the client to the server
* @param response the response send by the server to the client
* @throws ServletException if an error occurred
* @throws IOException if an error occurred
*/
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
response.setContentType("text/html");
request.setCharacterEncoding("gbk");
String uploadFileName="";
String userName=request.getParameter("userName");
String uptype=request.getParameter("uptype");
System.out.print(uptype);
String flag="";
if (uptype.equals("2")||uptype.equals("0")) {
flag=uptype;
}
DiskFileItemFactory factory = new DiskFileItemFactory();
factory.setSizeThreshold(1024*1024);
ServletFileUpload upload = new ServletFileUpload(factory);
upload.setSizeMax(1000*1024*1024);
List itemList = null;
try{
itemList = upload.parseRequest(request);
}catch(FileUploadBase.SizeLimitExceededException e){
// 请求数据的size超出了规定的大小.
e.printStackTrace();
request.setAttribute("message", "请求数据的size超出了规定的大小");
request.getRequestDispatcher("/Manage/cue.jsp").forward(request, response);
return;
}catch(FileUploadBase.InvalidContentTypeException e){
// 无效的请求类型,即请求类型enctype!= "multipart/form-data"
request.setAttribute("message", "请求类型enctype != multipart/form-data");
request.getRequestDispatcher("/Manage/cue.jsp").forward(request, response);
return;
}catch(FileUploadException e){
// 如果都不是以上子异常,则抛出此总的异常,出现此异常原因无法说明.
request.setAttribute("message", "上传过程异常,导致其原因可能是磁盘已满或者其它原因");
request.getRequestDispatcher("/Manage/cue.jsp").forward(request, response);
return;
}
if(itemList != null){
Iterator it = itemList.iterator();
while(it.hasNext()) {
FileItem item =(FileItem) it.next();
if(item.isFormField()) {
System.out.println(item.getFieldName());
if("fileName".equals(item.getFieldName())) {
request.setAttribute("fileName", item.getString("GB18030"));
System.out.println(item.getString("GBK"));
}
}else{
String uploadPath = request.getRealPath("/uploadFile");
System.out.println(uploadPath);
String totalName = item.getName();
String name = "temp";
if(totalName != ""){
int index = totalName.lastIndexOf("\\");
name = totalName.substring(index+1);
System.out.println(name);
}else{
name = "temp";
}
String path = uploadPath + "/"+ name;
uploadFileName=name;
try{
item.write(new File(path));
} catch(Exception e) {
// TODOAuto-generated catch block
e.printStackTrace();
request.setAttribute("message", "写入磁盘错误");
request.getRequestDispatcher("/Manage/cue.jsp").forward(request, response);
return;
}
}
}
}else{
request.setAttribute("message", "上传数据空");
request.getRequestDispatcher("/Manage/cue.jsp").forward(request, response);
return;
}
ParseExecl parseExecl=new ParseExecl();
List<Cux_cst_item_cost_temp> list =new ArrayList<Cux_cst_item_cost_temp>();
list=parseExecl.initWorkBook(request.getRealPath("/uploadFile/"+uploadFileName));
Iterator iterator=list.iterator();
while (iterator.hasNext()) {
Cux_cst_item_cost_temp costTemp =(Cux_cst_item_cost_temp) iterator.next();
costTemp.setFlog_proce(flag);
costTemp.setUpload_user(userName);
costTemp.setCreation_date(Calendar.getInstance().getTime());
HibernateUtil.save(costTemp);
}
request.setAttribute("flag", "1");
request.getRequestDispatcher("/Manage/import/costImport.jsp").forward(request, response);
}
/**
* The doPost method of the servlet. <br>
*
* This method is called when a form has its tag value method equals to post.
*
* @param request the request send by the client to the server
* @param response the response send by the server to the client
* @throws ServletException if an error occurred
* @throws IOException if an error occurred
*/
public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
doGet(request, response);
}
}