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 Controle; import DAO.FotoDAO; import Modelo.Foto; import Modelo.Mensagem; import com.google.gson.Gson; 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.Random; import javax.servlet.ServletException; 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.FileItemFactory; import org.apache.commons.fileupload.FileUploadException; import org.apache.commons.fileupload.disk.DiskFileItemFactory; import org.apache.commons.fileupload.servlet.ServletFileUpload; /** * * @author Alex Onodera */ public class Controle_foto extends HttpServlet { //tirar depois // private static final long serialVersionUID = 1L; @Override protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { boolean isMultipart = ServletFileUpload.isMultipartContent(request); ArrayList<Object> obj = new ArrayList<Object>(); Mensagem msg = new Mensagem(); Gson gson = new Gson(); PrintWriter out = response.getWriter(); Foto foto = new Foto(); FotoDAO fotoDAO = new FotoDAO(); System.out.println("teste"); if (isMultipart) { System.out.println("teste2"); FileItemFactory factory = new DiskFileItemFactory(); System.out.println("teste3"); ServletFileUpload upload = new ServletFileUpload(factory); try { System.out.println("teste4"); List itens = upload.parseRequest(request); Iterator iterator = itens.iterator(); String id = ""; String legenda = ""; id = request.getParameter("id"); // // if(id.equals("null")){ // System.out.println("sem id da foto"); // }else{ // System.out.println("com id da foto"); // } System.out.println("id da foto: " + request.getParameter("id")); while (iterator.hasNext()) { FileItem item = (FileItem) iterator.next(); if (!item.isFormField()) { String nomeArquivo = item.getName(); String extensao = ""; System.out.println(nomeArquivo); int cont = 4; for (int i = 0; i <= 3; i++) { extensao += nomeArquivo.charAt(nomeArquivo.length() - cont); cont = cont - 1; } Random rdm = new Random(); int n = rdm.nextInt(99999); nomeArquivo = id + n + extensao; System.out.println(nomeArquivo); String diretorio = getServletContext().getRealPath("/"); File destino = new File(diretorio + "/segura/img"); System.out.println(destino); //apagar arquivo antigo. foto = fotoDAO.buscarPorId(Integer.parseInt(id)); if (foto.getId() <= 0) { throw new Exception("Foto no encontrada!!!!"); } else { File arquivoAntigo = new File(diretorio + "/" + foto.getEndereco()); System.out.println("Endereo da imagem antiga !!!!!!!!!" + foto.getEndereco()); if (!foto.getEndereco().equals("segura/default/sem_foto.jpg")) { boolean bool = arquivoAntigo.delete(); System.out.println("arquivo apagado? " + bool); System.out.println("O seguinte arquivo antigo foi apagardo!!!!!!!!!" + arquivoAntigo.getAbsolutePath()); } foto.setEndereco("/segura/img/" + nomeArquivo); foto.setLegenda(legenda); fotoDAO.atualizar(foto); } // if (!destino.exists()) { // boolean status = destino.mkdirs(); // // } File arquivoRecebido = new File(destino + "/" + nomeArquivo); System.out.println(arquivoRecebido.getAbsolutePath()); item.write(arquivoRecebido); } else { if (!item.getFieldName().equals("legenda")) { id = item.getString(); } else { legenda = item.getString(); } System.out.println("Nome do campo !!!" + item.getFieldName()); System.out.println("Olha o valor do id !!!" + item.getString()); } } msg.setMensagem("Cadastrado com sucesso!!!!"); msg.setTipo(1); obj.add(msg); } catch (FileUploadException e) { e.printStackTrace(); System.out.println("Erro!!" + e.getMessage()); msg.setMensagem("Erro!!" + e.getMessage()); msg.setTipo(2); obj.add(msg); } catch (Exception e) { e.printStackTrace(); System.out.println("Erro!!" + e.getMessage()); msg.setMensagem("Erro!!" + e.getMessage()); msg.setTipo(2); obj.add(msg); } finally { out.printf(gson.toJson(obj)); } } else { System.out.println("deu ruim no multpart"); } } @Override public String getServletInfo() { return "Short description"; } }