diff --git a/AdminGoodsAddServlet.java b/AdminGoodsAddServlet.java new file mode 100644 index 0000000..1d13f5c --- /dev/null +++ b/AdminGoodsAddServlet.java @@ -0,0 +1,96 @@ +package servlet; + +import model.Goods; +import org.apache.commons.fileupload.FileItem; +import org.apache.commons.fileupload.FileUploadException; +import org.apache.commons.fileupload.disk.DiskFileItemFactory; +import org.apache.commons.fileupload.servlet.ServletFileUpload; +import service.GoodsService; + +import javax.servlet.ServletException; +import javax.servlet.annotation.WebServlet; +import javax.servlet.http.HttpServlet; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import java.io.FileOutputStream; +import java.io.IOException; +import java.io.InputStream; +import java.util.Date; +import java.util.List; + +@WebServlet(name = "admin_goods_add",urlPatterns = "/admin/goods_add") +public class AdminGoodsAddServlet extends HttpServlet { + private GoodsService gService = new GoodsService(); + /** + * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response) + */ + protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { + DiskFileItemFactory factory=new DiskFileItemFactory(); + ServletFileUpload upload = new ServletFileUpload(factory); + try { + List list = upload.parseRequest(request); + Goods g = new Goods(); + for(FileItem item:list) { + if(item.isFormField()) { + switch(item.getFieldName()) { + case "name": + g.setName(item.getString("utf-8")); + break; + case "price": + g.setPrice(Integer.parseInt(item.getString("utf-8"))); + break; + case "intro": + g.setIntro(item.getString("utf-8")); + break; + case "stock": + g.setStock(Integer.parseInt(item.getString("utf-8"))); + break; + case "typeid": + g.setTypeid(Integer.parseInt(item.getString("utf-8"))); + break; + } + }else { + if(item.getInputStream().available()<=0)continue; + String fileName = item.getName(); + fileName = fileName.substring(fileName.lastIndexOf(".")); + fileName = "/"+new Date().getTime()+fileName; + String path = this.getServletContext().getRealPath("/picture")+fileName; + InputStream in = item.getInputStream(); + FileOutputStream out = new FileOutputStream(path); + byte[] buffer = new byte[1024]; + int len=0; + while( (len=in.read(buffer))>0 ) { + out.write(buffer); + } + in.close(); + out.close(); + item.delete(); + switch(item.getFieldName()) { + case "cover": + g.setCover("/picture"+fileName); + break; + case "image1": + g.setImage1("/picture"+fileName); + break; + case "image2": + g.setImage2("/picture"+fileName); + break; + } + } + } + gService.insert(g); + request.getRequestDispatcher("/admin/goods_list").forward(request, response); + } catch (FileUploadException e) { + // TODO Auto-generated catch block + e.printStackTrace(); + } + } + + /** + * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response) + */ + protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { + // TODO Auto-generated method stub + doGet(request, response); + } +}