package com.robinson; import com.robinson.file.SendFile; import com.robinson.sql.DbData; import com.oreilly.servlet.MultipartRequest; import com.oreilly.servlet.multipart.MultipartParser; import com.oreilly.servlet.multipart.Part; import com.oreilly.servlet.multipart.ParamPart; import com.oreilly.servlet.multipart.FilePart; import com.sun.java_cup.internal.parser; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import javax.servlet.ServletException; import javax.servlet.ServletConfig; import java.io.*; import java.sql.Connection; import java.sql.DriverManager; /** * @author Sean Robinson * @version v. */ public class FileServlet extends HttpServlet { private String dbtype; private String dburl; private String filepath; private String pagetitle; private String headertitle; private Connection dbcon; public String path(HttpServletRequest request, String path) throws ServletException { return request.getContextPath() + request.getServletPath() + "/" + path; } public void init(ServletConfig config) throws ServletException { super.init(config); this.dbtype = config.getInitParameter("dbtype"); this.dburl = config.getInitParameter("dburl"); this.pagetitle = config.getInitParameter("pagetitle"); this.headertitle = config.getInitParameter("headertitle"); try { Class.forName(dbtype); dbcon = DriverManager.getConnection(dburl,"",""); DbData db = new DbData(); this.filepath = db.getFilePath(dbcon); } catch(Exception e){ throw new ServletException("Database Connection Error on init",e); } } public void printHome(HttpServletRequest request, HttpServletResponse response) throws ServletException{ response.setContentType("text/html"); try { PrintWriter out = response.getWriter(); out.println("
\n" + "

\n" + " \n" + "

\n" + "

\n" + " \n" + "

\n" + "
"); } catch(Exception e){ throw new ServletException("error",e); } } public void uploader(HttpServletRequest request,HttpServletResponse response) throws ServletException { response.setContentType("text/html"); int i; try { i = 4096; String fname = null; String lname= null; String email = null; String filename = null; MultipartParser mp = new MultipartParser(request,i); Part part; while((part = mp.readNextPart())!=null){ if((part = mp.readNextPart()) == null){ //send them back to upload page } else if (part.isFile()){ FilePart fp = (FilePart) part; filename = fp.getFileName(); File fileup = new File(filepath+filename); fp.writeTo(fileup); } else if(part.isParam()){ if(part.getName().equals("fname")){ ParamPart param; fname=param.getStringValue(); } } } }catch(Exception e){ } } public void handle(HttpServletRequest request,HttpServletResponse response) throws ServletException { String path = request.getPathInfo(); try{ if(path !=null){ if(path.equals("/Home")){ printHome(request,response); } else if(path.equals("/uploadnow")){ uploader(request,response); } } else { response.sendRedirect(path(request,"/")); } } catch(Exception e){ throw new ServletException("handle error",e); } } public void doGet(HttpServletRequest request,HttpServletResponse response) throws ServletException { } public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException { doGet(request,response); } }