使用Servlet上传多张图片——Servlet层(ProductServlet.java)
来源:互联网 发布:php k图 编辑:程序博客网 时间:2024/06/05 06:25
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")) {// 小图1filedName = 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")) {// 小图2filedName = 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")) {// 小图3filedName = 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);}}
阅读全文
0 0
- 使用Servlet上传多张图片——Servlet层(ProductServlet.java)
- 使用Servlet上传多张图片——Dao层(BaseDao.java)
- 使用Servlet上传多张图片——Dao层(ProductInfoDao.java)
- 使用Servlet上传多张图片——Service层(ProductInfoService.java和ProductInfoServiceImpl)
- 使用Servlet上传多张图片——实体层(ProductInfo.java)
- 使用Servlet上传多张图片——前台页面层(Index.jsp)
- 使用Servlet上传多张图片——访问提示
- 使用ueditor实现多图片上传案例——Servlet层(UploadServlet)
- java通过commons-fileupload实现多张图片的上传(servlet)
- Java Web 使用Servlet 实现上传图片功能!
- Java 上传 多张图片
- 2011级-csdn-java-张侃— Servlet事件监听器
- 使用JAVA Servlet生成图片
- 使用smartupload进行图片上传(servlet版,springmvc版)
- 使用smartupload组件上传图片(jsp+servlet)
- Android、IOS 图片上传接口(Java实现Servlet)。
- Android、IOS 图片上传接口(Java实现Servlet)
- servlet 个人信息+图片上传
- Centos7 搭配 LEMP(Nginx + MariaDB + PHP 7.1 + phpMyAdmin)
- 使用Servlet上传多张图片——前台页面层(Index.jsp)
- spring mvc原理
- C++类中的静态变量
- <设计模式可复用面向对象软件的基础> [2.3]、组合模式(C#)
- 使用Servlet上传多张图片——Servlet层(ProductServlet.java)
- 黑客-新手入门
- PAT乙级题1016.部分A+B
- Unity3d通过鼠标缩放查看和旋转物体
- 观察者模式
- 编译时缺少openssl/md5.h该怎么处理
- 递归与二叉树
- LeetCode 学习 LinkedList 专项(5)—— Linked List Cycle
- 我所理解的设计模式(C++实现)—— “一句话总结”和索引