Java tutorial
/* * To change this license header, choose License Headers in Project Properties. * To change this template file, choose Tools | Templates * and open the template in the editor. */ package vista; import controlador.RegistroDesarrolladorController; import controlador.RegistroVideojuegoController; import java.io.IOException; import java.io.InputStream; import java.io.PrintWriter; import java.nio.file.Files; import java.nio.file.Path; import java.nio.file.Paths; import java.util.logging.Level; import java.util.logging.Logger; import javax.annotation.Resource; import javax.persistence.EntityManagerFactory; import javax.persistence.PersistenceUnit; import javax.servlet.ServletException; import javax.servlet.annotation.MultipartConfig; import javax.servlet.annotation.WebServlet; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import javax.servlet.http.HttpSession; import javax.servlet.http.Part; import javax.transaction.UserTransaction; import modelo.Desarrollador; import modelo.Videojuego; import org.apache.commons.io.IOUtils; /** * * @author Alejandro Hernndez Mora <alejandrohmora@ciencias.unam.mx> */ @WebServlet("/uploadVideojuego") @MultipartConfig public class RegistroVideojuegoServlet extends HttpServlet { @PersistenceUnit(unitName = "untitledWebpagePU") private EntityManagerFactory emf; @Resource private UserTransaction utx; private boolean validaNombreImagen(String ext) { return ext.toLowerCase().equals(".jpg") || ext.toLowerCase().equals(".png") || ext.toLowerCase().equals(".jpeg") || ext.toLowerCase().equals(".gif"); } private boolean validaNombreVideo(String ext) { return ext.toLowerCase().equals(".mp4") || ext.toLowerCase().equals(".flv") || ext.toLowerCase().equals(".avi") || ext.toLowerCase().equals(".wmv"); } private boolean validaNombreArchivo(String ext) { return ext.toLowerCase().equals(".zip"); } private byte[] convierteArchivo(Part filePart, int tipo) { InputStream fileContent = null; byte[] imagen = null; try { InputStream inputStream = filePart.getInputStream(); String fileName = filePart.getSubmittedFileName(); String ext = fileName.substring(fileName.indexOf(".")); boolean validacion = tipo == 1 ? validaNombreVideo(ext) : tipo == 0 ? validaNombreImagen(ext) : validaNombreArchivo(ext); fileContent = filePart.getInputStream(); //String nombreArchivo = validaHistorial(fileName, fileContent, usuario, email); if (validacion) { imagen = new byte[inputStream.available()]; imagen = IOUtils.toByteArray(inputStream); } } catch (IOException ex) { Logger.getLogger(RegistroVideojuegoServlet.class.getName()).log(Level.SEVERE, null, ex); } finally { try { fileContent.close(); return imagen; } catch (IOException ex) { Logger.getLogger(RegistroVideojuegoServlet.class.getName()).log(Level.SEVERE, null, ex); } } return imagen; } /** * Processes requests for both HTTP <code>GET</code> and <code>POST</code> * methods. * * @param request servlet request * @param response servlet response * @throws ServletException if a servlet-specific error occurs * @throws IOException if an I/O error occurs */ protected void processRequest(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { response.setContentType("text/html;charset=UTF-8"); Videojuego videojuego = new Videojuego(); videojuego.setNombre(request.getParameter("nombre")); videojuego.setCosto(Double.parseDouble(request.getParameter("costo"))); videojuego.setDescripcion(request.getParameter("descripcion")); byte[] imagen; imagen = convierteArchivo(request.getPart("imagena"), 0); videojuego.setImagena(imagen); imagen = convierteArchivo(request.getPart("imagenb"), 0); videojuego.setImagenb(imagen); imagen = convierteArchivo(request.getPart("imagenc"), 0); videojuego.setImagenc(imagen); imagen = convierteArchivo(request.getPart("video"), 1); videojuego.setVideo(imagen); imagen = convierteArchivo(request.getPart("archivo"), 2); videojuego.setArchivo(imagen); videojuego.setLinkdescarga("down_" + videojuego.getNombre().replace(" ", "_")); RegistroVideojuegoController controller = new RegistroVideojuegoController(utx, emf); String mensaje = controller.registrar(videojuego); HttpSession session = request.getSession(); Desarrollador desarrollador = (Desarrollador) session.getAttribute("desarrollador"); if (desarrollador == null) { response.sendRedirect("loginDesarrollador.jsp"); } else if (mensaje.equals("")) { response.sendRedirect("Galeria"); } else { session.setAttribute("mensaje", mensaje); response.sendRedirect("subirVideojuego.jsp"); } } // <editor-fold defaultstate="collapsed" desc="HttpServlet methods. Click on the + sign on the left to edit the code."> /** * Handles the HTTP <code>GET</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 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> }