Upload de Imagens

Bom Dia a todos!

Ja pesquisei bastante, ví alguns tópicos aqui no fórum, mas nada que me ajudasse ou funcionasse aqui. Estou tentando fazer o upload de imagens para o servidor pelo FileUpload, mas esta dando erro. Segue abaixo os códigos das páginas:

cadastrar_cd.jsp

[code]<%@page import=“java.io.FileInputStream”%>
<%@page import=“java.io.File”%>
<%@page import=“java.sql.PreparedStatement”%>
<%@page import=“java.sql.Connection”%>
<%@ include file=“cabecalho.jsp” %>
<%@ include file=“menu.jsp” %>
<jsp:useBean id=“daoCategoriaCD” scope=“page” class=“webmundo.dao.CategoriasDAO” />
<jsp:useBean id=“cds” scope=“page” class=“webmundo.modelo.CDS” />
<jsp:useBean id=“daoCDS” scope=“page” class=“webmundo.dao.CdsDAO” />
<jsp:useBean id=“conexao” scope=“page” class=“webmundo.conexao.ConexaoBd” />

<h2>Cadastrar CD</h2>

<form action="ServletCadastrarCD" method="post" enctype="multipart/form-data">
    <label for="titulo">Titulo do CD:</label><br>
    <input type="text" name="titulo" id="titulo" /><br><br>
    
    <label for="autor">Cantor(a) / Banda:</label><br>
    <input type="text" name="autor" id="autor" /><br><br>
    
    <label for="estilo">Estilo:</label><br>
    <select name="categoria" id="categoria">
        <option value="">Escolha um Estilo</option>
        <%
            List<Categorias> categoriasCD = daoCategoriaCD.listarCategorias();
            for (Categorias categoria : categoriasCD) {
                out.println("<option value=\"" + categoria.getCat_id() + "\">" + categoria.getCat_titulo() + "</option>");
            }
            %>
    </select><br><br>
    
    <label for="imagemCD">Imagem do CD:</label><br>
    <input type="file" name="imagemCD" id="imagemCD" /><br><br>
    
    <input type="hidden" name="sessao" value="<%= sessao.getAttribute("id_logado").toString()%>" />
    <input type="submit" value="Cadastrar CD" />
</form>

<%@ include file=“rodape.jsp” %>[/code]

ServletCadastrarCD.java

[code]package webmundo.acao;

import java.io.File;
import webmundo.dao.CdsDAO;
import webmundo.modelo.CDS;
import java.io.IOException;
import java.util.Iterator;
import java.util.List;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.apache.commons.fileupload.DiskFileUpload;
import org.apache.commons.fileupload.FileItem;
import org.apache.commons.fileupload.FileUpload;
import org.apache.commons.fileupload.FileUploadException;

@WebServlet(name = “ServletCadastrarCD”, urlPatterns = {"/ServletCadastrarCD"})
public class ServletCadastrarCD extends HttpServlet {

private String titulo, autor, imagemURL;
private int cd_usu_id, cd_cat_id;

@Override
protected void doPost(HttpServletRequest request, HttpServletResponse response)
        throws ServletException, IOException {
    
    titulo = request.getParameter("titulo");
    autor = request.getParameter("autor");
    cd_cat_id = Integer.parseInt(request.getParameter("categoria"));
    cd_usu_id = Integer.parseInt(request.getParameter("sessao"));
    imagemURL = request.getParameter("imagemCD");
    
}

protected void processRequest(HttpServletRequest request, HttpServletResponse response)
        throws ServletException, IOException, FileUploadException, Exception {
    
    String caminho_imagem = null;
    boolean isMultipart = FileUpload.isMultipartContent(request);
    if (isMultipart) {
        DiskFileUpload upload = new DiskFileUpload();
        upload.setSizeMax(50*1024*1024);
        upload.setRepositoryPath("C:/imagem/");
        
        List items = upload.parseRequest(request);
        
        Iterator it = items.iterator();
        while (it.hasNext()) {
            FileItem fitem = (FileItem) it.next();
            if (!fitem.isFormField()) {
                try {
                    fitem.write(new File("C:/imagem/" + (new File(fitem.getName())).getName() ));
                } catch (Exception ex){
                    System.out.println("Problemas ao pegar o nome do arquivo! Erro: " + ex.getMessage());
                    ex.printStackTrace();
                }
                System.out.println(fitem.getName());
                caminho_imagem = "C:/imagem/"+fitem.getName();
                System.out.println("O arquivo enviado foi: " + caminho_imagem + "e o seu tamanho é de: " + fitem.getSize() + "bytes!");
            }
        }
    }
    
    CDS cds = new CDS();
    cds.setCd_imagemURL(caminho_imagem);
    cds.setCd_titulo(titulo);
    cds.setCd_autor(autor);
    cds.setCd_cat_id(cd_cat_id);
    cds.setCd_usu_id(cd_usu_id);
    
    try {
        CdsDAO dao = new CdsDAO();
        if (dao.cadastrarCD(cds) == true) {
                response.sendRedirect("cadastrar_cd.jsp");
        }
    } catch (Exception e) {
        System.out.println("Erro ao cadastar! Erro: " + e.getMessage());
        e.printStackTrace();
}

}

@Override
protected void doGet(HttpServletRequest request, HttpServletResponse response)
        throws ServletException, IOException {
    
}

}[/code]

ERRO que esta dando agora:

[code]HTTP Status 500 -

type Exception report

message

description The server encountered an internal error () that prevented it from fulfilling this request.

exception

java.lang.NumberFormatException: null
java.lang.Integer.parseInt(Unknown Source)
java.lang.Integer.parseInt(Unknown Source)
webmundo.acao.ServletCadastrarCD.doPost(ServletCadastrarCD.java:31)
javax.servlet.http.HttpServlet.service(HttpServlet.java:641)
javax.servlet.http.HttpServlet.service(HttpServlet.java:722)
note The full stack trace of the root cause is available in the Apache Tomcat/7.0.21 logs.[/code]

Só que na linha 84 tem o cd_cat_id = Integer.parseInt(request.getParameter("categoria")); é no formulário esse valor não é null, estou colocando o valor no form.

Alguém poderia me ajudar?

Desde já agradeço.

Coloque um breakpoint na linha 31, entre no debug e veja se o valor de

request.getParameter("categoria")

está vindo corretamente (apesar de você já ter dito que no formulário não está null).