/* *这个是黄迎斌的servlet框架 * http://opdps.hbnu.edu.cn/hyberbin */ package com.huahuan.web.index; import com.huahuan.servletutil.ServletUtil; import com.huahuan.tools.Util; import java.io.File; import java.io.IOException; import java.util.LinkedList; import java.util.List; import java.util.logging.Level; import java.util.logging.Logger; 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 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; /** * 网页ckeditorweb上传图片的browser * * @author Administrator */ @WebServlet(name = "WebConnector", urlPatterns = "/WebConnector.jsp") public class WebConnector extends HttpServlet { /** * 下面是模式关键字 可以自行删除和增加自定义模式,关键字一定要大写 默认模式为OTHER=0,所以OTHER不能删除 */ public final static int OTHER = 0;//其它 public final static int SHOWPICLIST = 2;//显示列表 public final static int UPLOADFILE = 3;//显示列表 protected void processRequest(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { request.setCharacterEncoding("UTF-8"); response.setContentType("text/html;charset=UTF-8"); execute(ServletUtil.setModel(request.getParameter("mode"), this), request, response); } // <editor-fold defaultstate="collapsed" desc="HttpServlet methods. Click on the + sign on the left to edit the code."> @Override protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { processRequest(request, response); } /** * Handles the HTTP * <code>POST</code> method. * * @param request servlet request * @param response servlet response * @throws ServletException if a servlet-specific error occurs * @throws IOException if an I/O error occurs */ @Override protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { processRequest(request, response); } /** * Returns a short description of the servlet. * * @return a String containing servlet description */ @Override public String getServletInfo() { return "Short description"; }// </editor-fold> /** * 显示文件夹已有的图片 */ private void showpiclist(HttpServletRequest request, HttpServletResponse response) { String path = request.getServletContext().getRealPath("/userfiles/image/网站/论坛/用户上传/"); File file = new File(path); File[] files = file.listFiles(); LinkedList<String> list = new LinkedList<String>(); if (files != null) { for (int i = 0; i < files.length; i++) { list.add("/" + files[i].getPath().substring(path.indexOf("userfiles") + "userfiles".length() + 1).replace("\\", "/")); } } request.setAttribute("mark", "view"); request.setAttribute("imglist", list); try { request.getRequestDispatcher("/web/public/browser.jsp").forward(request, response); } catch (ServletException ex) { Logger.getLogger(WebConnector.class.getName()).log(Level.SEVERE, null, ex); } catch (IOException ex) { Logger.getLogger(WebConnector.class.getName()).log(Level.SEVERE, null, ex); } } /** * 实现ckeditorweb的上传图片功能 */ private void uploadfile(HttpServletRequest request, HttpServletResponse response) { String path = request.getServletContext().getRealPath("/userfiles/image/网站/论坛/用户上传/"); DiskFileItemFactory factory = new DiskFileItemFactory(); ServletFileUpload upload = new ServletFileUpload(factory); List<FileItem> fileList = null; try { fileList = upload.parseRequest(request); } catch (FileUploadException ex) { ex.printStackTrace(System.out); } String imgurl = Util.upload(fileList, path); request.setAttribute("mark", "upload"); request.setAttribute("imgurl", "/" + imgurl.substring(imgurl.indexOf("userfiles") + "userfiles".length() + 1).replace("\\", "/")); try { request.getRequestDispatcher("/web/public/browser.jsp").forward(request, response); } catch (ServletException ex) { Logger.getLogger(WebConnector.class.getName()).log(Level.SEVERE, null, ex); } catch (IOException ex) { Logger.getLogger(WebConnector.class.getName()).log(Level.SEVERE, null, ex); } } /** * 下面的模式和方法可以自行增删 */ public void execute(int event, HttpServletRequest request, HttpServletResponse response) { /** * 下面是相关模式下所做的动作* */ switch (event) { case SHOWPICLIST: showpiclist(request, response); break; case UPLOADFILE: uploadfile(request, response); showpiclist(request, response); break; } } }