什么控件的主要功能是向指定目录上传文件

如题所述

其实上传文件到指定目录很简单,用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);
}

}
温馨提示:答案为网友推荐,仅供参考