使用Servlet上传多张图片——Servlet层(ProductServlet.java)

简介: 使用Servlet上传多张图片——Servlet层(ProductServlet.java)
package orz.treeSquirrels.web;
import java.io.File;
import java.io.IOException;
import java.io.PrintWriter;
import java.util.Iterator;
import java.util.List;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.apache.commons.fileupload.FileItem;
import org.apache.commons.fileupload.FileItemFactory;
import org.apache.commons.fileupload.disk.DiskFileItemFactory;
import org.apache.commons.fileupload.servlet.ServletFileUpload;
import orz.treeSquirrels.entity.ProductInfo;
import orz.treeSquirrels.service.ProductInfoService;
import orz.treeSquirrels.service.impl.ProductInfoServiceImpl;
public class ProductServlet extends HttpServlet {
  
  ProductInfoService proService = new ProductInfoServiceImpl();
  
  /**
   * (非 Javadoc)
  * <p>Description(描述):doget方法 </p>
  * <p>Title: doGet</p>
  * @param request
  * @param response
  * @throws ServletException
  * @throws IOException
  * @see javax.servlet.http.HttpServlet#doGet(javax.servlet.http.HttpServletRequest, javax.servlet.http.HttpServletResponse)
   */
  public void doGet(HttpServletRequest request, HttpServletResponse response)
      throws ServletException, IOException {
    response.setContentType("text/html;charset=utf-8");
    request.setCharacterEncoding("utf-8");
    String tag = request.getParameter("tag");
    if (tag.equals("add")) {
      // 添加商品
      addProduct(request, response);
    } 
  }
  
  
  
  
  /**
   * 
  * @Title: addProduct
  * @Description: 添加食品信息
  * @param @param request
  * @param @param response
  * @param @throws IOException    设定文件
  * @return void    返回类型
  * @throws
   */
  private void addProduct(HttpServletRequest request,
      HttpServletResponse response) throws IOException {
    PrintWriter out = response.getWriter();
    request.setCharacterEncoding("utf-8");
    String produceName = "";      // 商品名称
    String details = "";        // 商品详情
    String price = "";          // 价格
    int stock = 0;            // 库存
    String uploadFileName = "";     // 上传的文件名(大图)
    String uploadFileName1 = "";    // 上传的文件名(小图1)
    String uploadFileName2 = "";    // 上传的文件名(小图2)
    String uploadFileName3 = "";    // 上传的文件名(小图3)
    String fileName = "";       // 表单字段元素的name属性值
    String filedName = "";        //获取文件名称
    String picPath = "";
    // 请求信息中的内容是否是multipart类型
    boolean isMultipart = ServletFileUpload.isMultipartContent(request);
    // 上传文件的存储路径(服务器文件系统上的绝对文件路径)
    String uploadFilePath = request.getSession().getServletContext()
        .getRealPath("upload/");
    if (isMultipart) {
      FileItemFactory factory = new DiskFileItemFactory();
      ServletFileUpload upload = new ServletFileUpload(factory);
      try {
        // 解析from表单中所有文件
        @SuppressWarnings("unchecked")
        List<FileItem> items = upload.parseRequest(request);
        Iterator<FileItem> iter = items.iterator();
        while (iter.hasNext()) {
          FileItem item = (FileItem) iter.next();
          if (item.isFormField()) {
            // 判断,是普通表单
            fileName = item.getFieldName();
            // 表单字段的name属性
            if (fileName.equals("produceName")) {
              produceName = item.getString("utf-8");
            } else if (fileName.equals("details")) {
              details = item.getString("utf-8");
            } else if (fileName.equals("price")) {
              price = item.getString("utf-8");
            } else if (fileName.equals("stock")) {
              stock = Integer.parseInt(item.getString("utf-8"));
            }
          } else {
            // 文件表单字段
            // 表单字段的name属性
            fileName = item.getFieldName();
            if (fileName.equals("bigfile")) {
              filedName = item.getName();
              if (fileName != null && !filedName.equals("")) {
                File fullFile = new File(item.getName());
                File saveFile = new File(uploadFilePath,
                    fullFile.getName());
                item.write(saveFile);
                uploadFileName = fullFile.getName();
                picPath = saveFile.toString();
              }
            } else if (fileName.equals("smallfile1")) {
              // 小图1
              filedName = item.getName();
              if (fileName != null && !filedName.equals("")) {
                File fullFile = new File(item.getName());
                File saveFile = new File(uploadFilePath,
                    fullFile.getName());
                item.write(saveFile);
                uploadFileName1 = fullFile.getName();
                picPath = saveFile.toString();
              }
            } else if (fileName.equals("smallfile2")) {
              // 小图2
              filedName = item.getName();
              if (fileName != null && !filedName.equals("")) {
                File fullFile = new File(item.getName());
                File saveFile = new File(uploadFilePath,
                    fullFile.getName());
                item.write(saveFile);
                uploadFileName2 = fullFile.getName();
                picPath = saveFile.toString();
              }
            } else if (fileName.equals("smallfile3")) {
              // 小图3
              filedName = item.getName();
              if (fileName != null && !filedName.equals("")) {
                File fullFile = new File(item.getName());
                File saveFile = new File(uploadFilePath,
                    fullFile.getName());
                item.write(saveFile);
                uploadFileName3 = fullFile.getName();
                picPath = saveFile.toString();
              }
            }
          }
        }
      } catch (Exception ex) {
        ex.printStackTrace();
      }
      ProductInfo product = new ProductInfo();
      product.setProductName(produceName);
      product.setPrice(Integer.parseInt(price));
      product.setDetails(details);
      product.setStock(stock);
      product.setFileName("upload/" + uploadFileName);
      product.setFileName_1("upload/" + uploadFileName1);
      product.setFileName_2("upload/" + uploadFileName2);
      product.setFileName_3("upload/" + uploadFileName3);
      int rel = proService.addProductInfo(product);
      if (rel > 0) {
        // 添加商品成功之后转发到查询所有的商品界面
        out.print("<script>alert('恭喜您,添加商品成功!');location.href='ProductInfoServlet?tag=show';</script>");
      } else {
        out.print("<script>alert('很抱歉,添加商品失败!');location.href='ProductInfoServlet?tag=show';</script>");
      }
    }
  }
  
  
  
  
  
  
  
  
  
  
  /**
   * (非 Javadoc)
  * <p>Description(描述): dopost方法</p>
  * <p>Title: doPost</p>
  * @param request
  * @param response
  * @throws ServletException
  * @throws IOException
  * @see javax.servlet.http.HttpServlet#doPost(javax.servlet.http.HttpServletRequest, javax.servlet.http.HttpServletResponse)
   */
  public void doPost(HttpServletRequest request, HttpServletResponse response)
      throws ServletException, IOException {
      doGet(request, response);
  }
}


目录
相关文章
|
26天前
|
Java
学校教师管理系统【JSP+Servlet+JavaBean】(Java课设)
学校教师管理系统【JSP+Servlet+JavaBean】(Java课设)
20 1
|
26天前
|
Java
人事管理系统【JSP+Servlet+JavaBean】(Java课设)
人事管理系统【JSP+Servlet+JavaBean】(Java课设)
19 0
|
1月前
|
Java
java通过commons-fileupload实现多张图片的上传(servlet)
java通过commons-fileupload实现多张图片的上传(servlet)
23 2
|
1月前
使用Servlet上传多张图片——前台页面层(Index.jsp)
使用Servlet上传多张图片——前台页面层(Index.jsp)
14 0
|
3天前
|
设计模式 存储 前端开发
Java从入门到精通:2.2.1学习Java Web开发,了解Servlet和JSP技术,掌握MVC设计模式
Java从入门到精通:2.2.1学习Java Web开发,了解Servlet和JSP技术,掌握MVC设计模式
|
26天前
|
Java
排课系统【JSP+Servlet+JavaBean】(Java课设)
排课系统【JSP+Servlet+JavaBean】(Java课设)
7 0
|
26天前
|
Java
仓库管理系统【JSP+Servlet+JavaBean】(Java课设)
仓库管理系统【JSP+Servlet+JavaBean】(Java课设)
14 0
|
26天前
|
Java
学校人员管理系统【JSP+Servlet+JavaBean】(Java课设)
学校人员管理系统【JSP+Servlet+JavaBean】(Java课设)
16 0
|
1月前
使用Servlet上传多张图片——Service层(ProductInfoService.java和ProductInfoServiceImpl)
使用Servlet上传多张图片——Service层(ProductInfoService.java和ProductInfoServiceImpl)
8 0
|
1月前
使用Servlet上传多张图片——Dao层(ProductInfoDao.java)
使用Servlet上传多张图片——Dao层(ProductInfoDao.java)
10 0