|
<%@ page contentType="text/html; charset=GBK"%>
<%@ page import="com.oreilly.servlet.multipart.MultipartParser"%>
<%@ page import="com.oreilly.servlet.multipart.Part"%>
<%@ page import="com.oreilly.servlet.multipart.ParamPart"%>
<%@ page import="com.oreilly.servlet.multipart.FilePart"%>
<%@ page import="java.io.File"%>
<%
//设置POST请求的内容最大字节为10M,该类用于解析HTTP请求
MultipartParser mp = new MultipartParser(request, 10 * 1024 * 1024);
mp.setEncoding("GBK");
//所有表单域都是Part实例
Part part = mp.readNextPart();
//遍历请求中的所有表单域
while (part != null) {
//取得表单域的name属性值
String name = part.getName();
//对于普通表单域
if (part.isParam()) {
//取得普通表单域的值
ParamPart paramPart = (ParamPart) part;
String value = paramPart.getStringValue();
out.println(name + " = " + value + "<br/>");
part = mp.readNextPart();
}
//对于文件域
else if (part.isFile()) {
//取得文件上传域
FilePart filePart = (FilePart) part;
String fileName = filePart.getFileName();
if (fileName != null) {
//输出文件内容
long size = filePart.writeTo(new File(request
.getSession().getServletContext().getRealPath(
"/")));
out.println(name + " = " + fileName + "<br/>");
out.println("文件路径:" + filePart.getFilePath() + "<br/>");
out.println("内容类型:" + filePart.getContentType()
+ "<br/>");
out.println("文件大小:" + size);
}
//文件名为空
else {
//该文件域没有输入文件名
out.println("文件域没有输入文件名");
}
out.flush();
part = mp.readNextPart();
}
}
%>
|