服务器代码仍然在servelet中,需要去apach上下载commons-fileupload-current-bin.zip
//jsp页image.jsp
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" >
<HTML>
<HEAD>
</HEAD>
<body>
<form enctype="multipart/form-data" name="myForm" method="post" action="addswapproservlet"
οnsubmit="return validatePro();">
<input type="file" id="smallImg" name="smallImg"
onClick="pic.src=smallImg.value;"/>
<input type="submit" id="subSmallImg" name="subSmallImg" value="上传"
οnclick="pic.src=smallImg.value; myForm.action='uploadservlet';myForm.οnsubmit=null;"/>
<img id=pic name=pic src=''/>
</form>
</body>
</HTML>
//UploadServlet
package oldgoods;
import javax.servlet.*;
import javax.servlet.http.*;
import java.io.*;
import java.util.*;
import org.apache.commons.fileupload.FileItem;
import org.apache.commons.fileupload.FileUpload;
import org.apache.commons.fileupload.DiskFileUpload;
public class UploadServlet extends HttpServlet {
private static final String CONTENT_TYPE = "text/html; charset=GBK";
//Initialize global variables
public void init() throws ServletException {
}
//Process the HTTP Get request
public void doGet(HttpServletRequest request, HttpServletResponse response) throws
ServletException, IOException {
response.setContentType(CONTENT_TYPE);
///
request.getSession().setAttribute("userName", "aaaa");
PrintWriter out = response.getWriter();
boolean isMultipart = FileUpload.isMultipartContent(request);
if (isMultipart) {
DiskFileUpload upload = new DiskFileUpload();
upload.setSizeThreshold(6);
upload.setSizeMax(400000);
List items = null;
try {
items = upload.parseRequest(request);
} catch (Exception ex) {
out.println("<script language='javascript'>alert('文件类型错误或文件太大!//n请重新选择文件路径!');window.history.go(-1);</script>");
out.close();
return;
}
Iterator iter = items.iterator();
String webModuleDir = request.getSession().getServletContext().
getRealPath("");
File imageDir = new File(webModuleDir + "/goodsimages");
//创建目录
if (!imageDir.isDirectory()) {
imageDir.mkdir();
}
//该循环判断是哪个上传
String upLoadName = null;
while (iter.hasNext()) {
FileItem item = (FileItem) iter.next();
String name = item.getFieldName();
if (name.equals("subBigImg") || name.equals("subSmallImg")) {
upLoadName = name;
break;
}
}
//重新定位指针
iter=items.iterator();
//遍历
while (iter.hasNext()) {
FileItem item = (FileItem) iter.next();
String name = item.getFieldName();
long size = item.getSize();
String Type = item.getContentType();
//处理保存
if (Type != null && (Type.equals("image/pjpeg") || Type.equals("image/jpeg") || Type.equals("image/gif"))) {
if (size < 51200 && size > 0) {
if(!("sub"+name).toUpperCase().equals(upLoadName.toUpperCase()))
{
continue;
}
String strUserDir = "/" +
MD5.MD5(Calendar.getInstance().
getTime() +
request.getSession().getAttribute("userName").
toString());
File userDir = new File(imageDir.getPath() + strUserDir);
userDir.mkdir();
try {
String path = null;
if (Type.equals("image/pjpeg") ||
Type.equals("image/jpeg")) {
path = request.getSession().
getServletContext().
getRealPath("/goodsimages/" + strUserDir +
"/" +
name + ".jpg");
} else if (Type.equals("image/gif")) {
path = request.getSession().
getServletContext().
getRealPath("/goodsimages/" + strUserDir +
"/" +
name + ".gif");
}
File f = new File(path);
try {
item.write(f);
out.println(
"<script language='javascript'>alert('上传成功!');window.history.go(-1);</script>");
break;
} catch (Exception ex) {
ex.printStackTrace();
}
break ;
} catch (Exception e) {
out.println(e);
}
} else {
out.println("<script language='javascript'>alert('文件类型错误或文件太大!//n请重新选择文件路径!');window.history.go(-1);</script>");
}
//保存结束
}
}
}
out.close();
}
//Process the HTTP Post request
public void doPost(HttpServletRequest request, HttpServletResponse response) throws
ServletException, IOException {
doGet(request, response);
}
//Clean up resources
public void destroy() {
}
}