MultipartRequest.java文件上半部内容如下:
import java.io.BufferedOutputStream;
import java.io.BufferedReader;
import java.io.ByteArrayOutputStream;
import java.io.File;
import java.io.FileOutputStream;
import java.io.FilterOutputStream;
import java.io.IOException;
import java.io.OutputStream;
import java.io.UnsupportedEncodingException;
import java.security.Principal;
import java.util.Enumeration;
import java.util.HashMap;
import java.util.Iterator;
import java.util.Locale;
import java.util.Map;
import java.util.Set;
import java.util.ArrayList;
import javax.servlet.RequestDispatcher;
import javax.servlet.ServletInputStream;
import javax.servlet.http.Cookie;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpSession;
public class MultipartRequest implements HttpServletRequest{
private
static final String TEMP_PATH = "c:/temp/";
private long
userId_;
private
HttpServletRequest req_;
private File
dir_ = new File(TEMP_PATH);
private HashMap<String,
ArrayList<String>>
parameters_ = new HashMap<String,
ArrayList<String>>();
private
HashMap<String, UploadedFile> files_
= new HashMap<String,
UploadedFile>();
private HashMap<File,
String> exactFileNameTable_ = new
HashMap<File, String>();
public
static boolean isMultipart(HttpServletRequest req) {
String type = null;
String type1 = req.getHeader("Content-Type");
String type2 = req.getContentType();
if (type1 == null && type2 != null)
{
type = type2;
}
else if (type2 == null && type1 !=
null) {
type = type1;
}
else if (type1 != null && type2 !=
null) {
type = (type1.length() > type2.length() ? type1 :
type2);
}
if (type == null
||!type.toLowerCase().startsWith("multipart/form-data")) {
return false ;
}else{
return true ;
}
}
public MultipartRequest(HttpServletRequest req,
long userId) throws IOException {
if (req == null)
throw new IllegalArgumentException("request cannot be null");
if (!dir_.isDirectory())
dir_.mkdir();
if (!dir_.canWrite())
throw new IllegalArgumentException("服务器上 " + TEMP_PATH + "
这个目录没有写的权限");
req_ = req;
userId_ = userId;
readRequest();
}
protected
void readRequest()
throws
IOException {
int length = req_.getContentLength();
String type = null;
String type1 = req_.getHeader("Content-Type");
import java.io.BufferedReader;
import java.io.ByteArrayOutputStream;
import java.io.File;
import java.io.FileOutputStream;
import java.io.FilterOutputStream;
import java.io.IOException;
import java.io.OutputStream;
import java.io.UnsupportedEncodingExcep
import java.security.Principal;
import java.util.Enumeration;
import java.util.HashMap;
import java.util.Iterator;
import java.util.Locale;
import java.util.Map;
import java.util.Set;
import java.util.ArrayList;
import javax.servlet.RequestDispatcher;
import javax.servlet.ServletInputStream;
import javax.servlet.http.Cookie;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpSession;
public class MultipartRequest implements HttpServletRequest{