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.ArquivoTratamento; import classes.Tratamento; import java.io.File; import java.io.IOException; import java.io.PrintWriter; 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; /** * * @author Leandro Ungari Cayres <leandroungari@gmail.com> */ public class tratamento 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(); HttpSession sessao = request.getSession(false); String tipo = (String) sessao.getAttribute("tipoTratamento"); if (tipo.equals("adicionar")) { try { boolean isMultiPart = ServletFileUpload.isMultipartContent(request); if (isMultiPart) { FileItemFactory factory = new DiskFileItemFactory(); ServletFileUpload upload = new ServletFileUpload(factory); out.print(upload.getHeaderEncoding()); upload.setHeaderEncoding("UTF-8"); out.print(upload.getHeaderEncoding()); List items; ArrayList<String> arquivos = new ArrayList<String>(); String caminho = getServletContext().getRealPath("/experimentador/experimento/tecnica") + "/"; items = upload.parseRequest(request); Iterator iter = items.iterator(); String desc = null, nome = null, tipoTec = null, art = 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_tecnica.jsp?msg=1"); } else { if (name.equals("nome")) { nome = value; } if (name.equals("descricao")) { desc = value; } if (name.equals("tipo_tecnica")) { tipoTec = value; } if (name.equals("rdArtefato")) { art = value; } if (name.equals("idexperimento")) { // tecnica.setExperimento(Controladores.Controlador.getExperimentoAtual()); caminho = caminho + "tecnica_" + value + "/"; //?lvaro: 2\ -> / } } } else { if (!item.getName().equals("")) { String path = new String(); path = item.getName(); this.inserirImagemDiretorio(item, caminho); arquivos.add(path); } } } if (desc != null && nome != null) { if (Controladores.Controlador.criarTratamento(nome, desc, tipoTec, art)) { if (!arquivos.isEmpty()) { int tam = arquivos.size(); for (int t = 0; t < tam; t++) { ArquivoTratamento arq = new ArquivoTratamento(); //arq.setTratamento(tecnica); -> tecnica //arq.setPath_arquivo(arquivos.get(t)); Controladores.Controlador.criarArquivoTratamento( Controladores.Controlador.listarTratamentos() .get(Controladores.Controlador.listarTratamentos().size() - 1), arquivos.get(t)); } } response.sendRedirect("experimentador/experimento/plano_tecnica.jsp?msg=0"); } else { response.sendRedirect("experimentador/experimento/plano_tecnica.jsp?msg=2"); } } } } catch (FileUploadException ex) { Logger.getLogger(tratamento.class.getName()).log(Level.SEVERE, null, ex); } catch (Exception ex) { Logger.getLogger(tratamento.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> }