res.setContentType(“text/html; charset=GB2312”); PrintWriter out = res.getWriter(); DiskFileItemFactory factory =
new
DiskFileItemFactory(); factory.setSizeThreshold(
4096
); File tempPath =
new
File((
new
StringBuilder(String.valueOf(getServletContext().getRealPath(“/”)))).append(“temp/”).toString()); factory.setRepository(tempPath); ServletFileUpload upload =
new
ServletFileUpload(factory); upload.setSizeMax(0xf4240L); String date = “”;
try
{ List fileItems = upload.parseRequest(req); Iterator iter = fileItems.iterator(); String regExp = “.+\\(.+)$”; String errorType[] = { “.exe”, “.com”, “.cgi”, “.asp” }; Pattern p = Pattern.compile(regExp);
while
(iter.hasNext()) { FileItem item = (FileItem)iter.next();
if
(item.isFormField() && item.getFieldName().equals(“date”)) date = item.getString();
if
(!item.isFormField()) { String name = item.getName();
long
size = item.getSize();
if
(name !=
null
&& !name.equals(“”) || size != 0L) { Matcher m = p.matcher(name);
boolean
result = m.find();
if
(result) {
for
(
int
temp =
0
; temp < errorType.length; temp++)
if
(m.group(
1
).endsWith(errorType[temp]))
throw
new
IOException((
new
StringBuilder(String.valueOf(name))).append(“: wrong type”).toString());
try
{
item.write(
new
File((
new
StringBuilder(String.valueOf(getServletContext().getRealPath(
"/"
)))).append(
"images/youqing/"
).append(date).append(
".gif"
).toString()));
res.sendRedirect((
new
StringBuilder(
"../admin/left7/chenggong3.jsp?"
)).append(date).append(
".gif"
).toString());
}
catch
(Exception e)
{
out.println(e);
}
}
else
{
throw
new
IOException(
"fail to upload"
);
}
}
}
}
}
catch
(IOException e)
{
out.println(e);
}
catch
(FileUploadException e)
{
out.println(e);
}