<commit_before>/*
 * 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 Servlet;

import hibernatePersistent.fashionista.Fashionista;
import hibernatePersistent.fashionista.FashionistaDAO;
import hibernatePersistent.fashionista.Peca;
import hibernatePersistent.fashionista.PecaDAO;
import java.io.ByteArrayOutputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.io.PrintWriter;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.servlet.ServletException;
import javax.servlet.annotation.MultipartConfig;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.Part;

/**
 *
 * @author aluno
 */
@MultipartConfig
public class FileUploadServlet extends HttpServlet {

    private final static Logger LOGGER
            = Logger.getLogger(FileUploadServlet.class.getCanonicalName());

    protected void processRequest(HttpServletRequest request,
            HttpServletResponse response)
            throws ServletException, IOException {
        response.setContentType("text/html;charset=UTF-8");
        
        PecaDAO pecaDAO = new PecaDAO();
        Peca peca = new Peca();
        
        byte[] bytes = imageToByte(request.getPart("file").getInputStream());
        
      // peca.setFoto((request.getParameter("file")).getBytes());  
       peca.setFoto(bytes);
       peca.setCod_peca(Integer.valueOf(request.getParameter("codigoPeca")));
        
        //Na linha abaixo estamos mandando o DAO salvar o seu objeto peca        
        pecaDAO.addPeca(peca);
        
// As linhas abaixo, servem como exemplo  para mostrar como você ira retornar na tela a imagem que vier do banco
// a variavel bytes deverá ser peca.getFoto
//Você precisa agora criar no PecaDAO um metodo para buscar uma peca a partir do seu código.
        response.setContentType("image/png");
        response.getOutputStream().write(bytes);
        response.getOutputStream().flush();
        response.getOutputStream().close();   
        response.sendRedirect("mostraImg.jsp");
    }  
        
    /**
     * Este metodo serve para converter o InputStream de uma imagem em bytes para 
     * ser armezanado numa coluna do tipo bytea no postegree
     * @param fis
     * @return
     * @throws FileNotFoundException 
     */
    public static byte [] imageToByte(InputStream fis) throws FileNotFoundException{
        ByteArrayOutputStream bos = new ByteArrayOutputStream();
        byte[] buf = new byte[1024];
        try {<commit_msg>Upload da iamgem funcionando<commit_after>/*
 * 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 Servlet;

import hibernatePersistent.fashionista.Fashionista;
import hibernatePersistent.fashionista.FashionistaDAO;
import hibernatePersistent.fashionista.Peca;
import hibernatePersistent.fashionista.PecaDAO;
import java.io.ByteArrayOutputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.io.PrintWriter;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.servlet.ServletException;
import javax.servlet.annotation.MultipartConfig;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.Part;

/**
 *
 * @author aluno
 */
@MultipartConfig
public class FileUploadServlet extends HttpServlet {

    private final static Logger LOGGER
            = Logger.getLogger(FileUploadServlet.class.getCanonicalName());

    protected void processRequest(HttpServletRequest request,
            HttpServletResponse response)
            throws ServletException, IOException {
        response.setContentType("text/html;charset=UTF-8");
        
        PecaDAO pecaDAO = new PecaDAO();
        Peca peca = new Peca();
        
        byte[] bytes = imageToByte(request.getPart("file").getInputStream());
        
      // peca.setFoto((request.getParameter("file")).getBytes());  
       peca.setFoto(bytes);
       //peca.setCod_peca(Integer.valueOf(request.getParameter("codigoPeca")));
       peca.setCod_peca(123456);
        
        //Na linha abaixo estamos mandando o DAO salvar o seu objeto peca        
        pecaDAO.addPeca(peca);
        
// As linhas abaixo, servem como exemplo  para mostrar como você ira retornar na tela a imagem que vier do banco
// a variavel bytes deverá ser peca.getFoto
//Você precisa agora criar no PecaDAO um metodo para buscar uma peca a partir do seu código.
        response.setContentType("image/png");
        response.getOutputStream().write(bytes);
        response.getOutputStream().flush();
        response.getOutputStream().close();   
        response.sendRedirect("mostraImg.jsp");
    }  
        
    /**
     * Este metodo serve para converter o InputStream de uma imagem em bytes para 
     * ser armezanado numa coluna do tipo bytea no postegree
     * @param fis
     * @return
     * @throws FileNotFoundException 
     */
    public static byte [] imageToByte(InputStream fis) throws FileNotFoundException{
        ByteArrayOutputStream bos = new ByteArrayOutputStream();
        byte[] buf = new byte[1024];
        try {
{'fraction_non_alphanumeric': 0.0888351192533702, 'fraction_numerical': 0.00276529554096094, 'mean_word_length': 3.482571649883811, 'pattern_counts': {'":': 0, '<': 3, '<?xml version=': 0, '>': 3, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '4150185', 'n_tokens_mistral': 1644, 'n_tokens_neox': 1618, 'n_words': 430}