Controle.Controle_foto.java Source code

Java tutorial

Introduction

Here is the source code for Controle.Controle_foto.java

Source

/*
 * 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";
    }
}