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 servletExperimento; import classes.ArquivoArtefato; import classes.Artefato; import java.io.File; import java.io.IOException; import java.io.PrintWriter; import java.sql.SQLException; import java.util.ArrayList; import java.util.Iterator; import java.util.List; import java.util.logging.Level; import java.util.logging.Logger; import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import javax.servlet.http.HttpSession; import org.apache.commons.fileupload.FileItem; import org.apache.commons.fileupload.FileItemFactory; import org.apache.commons.fileupload.FileUploadException; import org.apache.commons.fileupload.disk.DiskFileItemFactory; import org.apache.commons.fileupload.servlet.ServletFileUpload; import persistencia.ArtefatoPersistencia; /** * * @author Leandro Ungari Cayres <leandroungari@gmail.com> */ public class artefato extends HttpServlet { /** * 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"); PrintWriter out = response.getWriter(); try { HttpSession sessao = request.getSession(false); String tipo = (String) sessao.getAttribute("tipoArtefato"); if (tipo.equals("adicionar")) { boolean isMultiPart = ServletFileUpload.isMultipartContent(request); if (isMultiPart) { FileItemFactory factory = new DiskFileItemFactory(); ServletFileUpload upload = new ServletFileUpload(factory); upload.setHeaderEncoding("UTF-8"); List items; ArrayList<String> arquivos = new ArrayList<String>(); String caminho = getServletContext().getRealPath("/experimentador/experimento/artefato") + "/"; //?lv: 2\ -> / items = upload.parseRequest(request); Iterator iter = items.iterator(); String nome = null, descricao = null, tipoArt = null; while (iter.hasNext()) { FileItem item = (FileItem) iter.next(); if (item.isFormField()) { String name = item.getFieldName(); String value = new String(item.getString().getBytes("ISO-8859-1"), "UTF-8"); if (value.equals("") || value == null) { response.sendRedirect("experimentador/experimento/plano_artefato.jsp?msg=1"); } else { if (name.equals("nome")) { nome = (value); } if (name.equals("descricao")) { descricao = (value); } if (name.equals("tipo_artefato")) { tipoArt = (value); } if (name.equals("idexperimento")) { //artefato.setIdexperimento(Integer.parseInt(value)); caminho = caminho + "artefato_" + value + "/"; //?lvaro: 2\ -> / } } } else { if (!item.getName().equals("")) { String path = new String(); path = item.getName(); this.inserirImagemDiretorio(item, caminho); arquivos.add(path); } } } if (descricao != null && nome != null) { if (Controladores.Controlador.criarArtefato(nome, descricao, tipoArt)) { if (!arquivos.isEmpty()) { int tam = arquivos.size(); for (int t = 0; t < tam; t++) { Controladores.Controlador.criarArquivoArtefato(nome, descricao, Controladores.Controlador.listarArtefatos() .get(Controladores.Controlador.listarArtefatos().size() - 1)); } } response.sendRedirect("experimentador/experimento/plano_artefato.jsp?msg=0"); } else { response.sendRedirect("experimentador/experimento/plano_artefato.jsp?msg=2"); } } } } } catch (FileUploadException ex) { Logger.getLogger(artefato.class.getName()).log(Level.SEVERE, null, ex); } catch (SQLException ex) { Logger.getLogger(artefato.class.getName()).log(Level.SEVERE, null, ex); } catch (Exception ex) { Logger.getLogger(artefato.class.getName()).log(Level.SEVERE, null, ex); } finally { out.close(); } } private void inserirImagemDiretorio(FileItem item, String caminho) throws IOException, Exception { // Cria o diretrio caso ele no exista File diretorio = new File(caminho); if (!diretorio.exists()) { diretorio.mkdirs(); } // Mandar o arquivo para o diretrio informado String nome = item.getName(); String arq[] = nome.split("/"); //?lvaro: 4\ -> / for (int i = 0; i < arq.length; i++) { nome = arq[i]; } // Grava o arquivo em disco File file = new File(diretorio, nome); item.write(file); } // <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> }