package servelt;
import java.io.*;
import java.util.*;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
//import org.apache.commons.beanutils.BeanUtils;
import org.apache.commons.fileupload.*;
import org.apache.commons.fileupload.disk.*;
import org.apache.commons.fileupload.servlet.*;
import bean.*;
public class Upload extends HttpServlet {
/**
* 文件上传
*/
private static final long serialVersionUID = 1L;
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
request.setCharacterEncoding("GB2312");
response.setContentType("text/html;charset=GB2312");
PrintWriter out = response.getWriter();
Map m=new HashMap(0);
try{
DiskFileItemFactory factory=new DiskFileItemFactory();
factory.setSizeThreshold(1024*4);
ServletFileUpload upload=new ServletFileUpload(factory);
upload.setFileSizeMax(1024*1024);
upload.setHeaderEncoding("GB2312");
List items = upload.parseRequest(request);// 上传文件解析
for(FileItem item:(List<FileItem>)items){
if(item.isFormField()){
//表单字符串数据
// out.println("表单参数名:" + item.getFieldName()
// + ",表单参数值:" + item.getString("GB2312"));
m.put(item.getFieldName(),item.getString("GB2312"));
}else{
if (item.getName() != null && !item.getName().equals("")) {
// 判断是否选择了文件
out.println("上传文件的大小:" + item.getSize());
out.println("上传文件的类型:" + item.getContentType());
// item.getName()返回上传文件在客户端的完整路径名称
out.println("上传文件的名称:" + item.getName());
// 此时文件暂存在服务器的内存当中
// 获取根目录对应的真实物理路径
String uploadDir = getServletContext().getRealPath("/upload");
File tempFile = new File(item.getName());// 构造临时对象
File file = new File(uploadDir,tempFile.getName());
item.write(file);// 保存文件在服务器的物理磁盘中
out.println("文件上传成功");
}
}
}
}catch(Exception e){
out.println(e);
}
/*
UploadBean ub = new UploadBean();
// 使用Jakarta包提供的自动表单Bean的方法
try {
BeanUtils.populate(ub, m);
} catch (Exception e) {
out.println("参数错误");
return;
}
out.println("书名:"+ub.getBookName());
*/
// request.setAttribute("message", ub.getBookName());
// request.getRequestDispatcher("/index.jsp").forward(request, response);
}
public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
doGet(request, response);
}
}