1.jar包
2. 前台
<form action="${pageContext.request.contextPath}/MenuAddServlet?method=add" method="post" name="form1"
onSubmit="return verifyInfo()" enctype="multipart/form-data">
<tr>
<td height="25" align="right" width="20%"><span>上传图片:</span></td>
<td height="25" width="80%"><input
type="file" name="img" size="50">${msg}</td>
</tr>
<tr>
<td height="25" align="center" colspan="2"><input
type="submit" value="添加"></td>
</tr>
3.servlet
protected void add(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
PrintWriter out = response.getWriter();
//文件上传的三部曲
//创建工厂
DiskFileItemFactory factoy=new DiskFileItemFactory();
//创建解析器
ServletFileUpload sfu=new ServletFileUpload(factoy);
//设置上传文件的大小
sfu.setFileSizeMax(1024*1024);
//解析request
try {
List<FileItem> list=sfu.parseRequest(request);
String name=list.get(0).getString("utf-8");
String burden=list.get(1).getString("utf-8");
String price=list.get(2).getString("utf-8");
String price1=list.get(3).getString("utf-8");
String brief=list.get(4).getString("utf-8");
String typeid=list.get(5).getString("utf-8");
System.out.println(list.get(6));
/**
* 上传图片
*/
//设置图片保存的目录
String path="D:/MyPicture/img/";
//得到文件名称
String fileName="m_"+UUID.randomUUID()+"_"+list.get(6).getName();
System.out.println("fileName:"+fileName);
//校验图片的格式
if(!fileName.toLowerCase().endsWith(".gif")){
System.out.println("图片格式不是gif格式");
request.setAttribute("msg", "你的图片格式不是gif格式");
request.getRequestDispatcher("/admin/menus_add.jsp").forward(request, response);
return;
}
//使用目录和文件名称创建目标文件
File f=new File(path,fileName);
//保存文件
list.get(6).write(f);
//校验图片的尺寸
ImageIcon imageIcon = new ImageIcon(f.getAbsolutePath());
Image image=imageIcon.getImage();
if(image.getWidth(null)>200 || image.getHeight(null)>200){
f.delete();
request.setAttribute("msg", "图片的尺寸太大");
request.getRequestDispatcher("/admin/menus_add.jsp").forward(request, response);
}
//设置为menu的属性
Menus menu = new Menus(name, typeid, burden, brief, price, price1, "/img/"+fileName);
System.out.println("fileName:"+fileName);
System.out.println(path);
System.out.println(menu);
if(menusService.add(menu)>0) {
out.print("<script>"
+ "alert('菜单添加成功!');"
+ "window.parent.location.href='"
+ request.getContextPath()+"/admin/main.jsp'"
+ "</script>");
}else {
out.print("<script>"
+ "alert('菜单添加失败!');"
+ "window.parent.location.href='"
+ request.getContextPath()+"/admin/menus_add.jsp'"
+ "</script>");
}
} catch (FileUploadException e) {
if(e instanceof FileUploadBase.FileSizeLimitExceededException){
System.out.println("你上传的文件大于1M");
request.setAttribute("msg", "你的图片大于1M");
request.getRequestDispatcher("/admin/menus_add.jsp").forward(request, response);
return;
}
e.printStackTrace();
} catch (Exception e) {
e.printStackTrace();
}
}
4.注意:在D盘创建目录 D:/MyPicture/img/
在tomcat 的service.xml里创建虚拟路径对应磁盘物理路径
<Context docBase="D:\MyPicture" path="/pic" reloadable="true"/>
5.遍历显示(需要查询数据库,省略)