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.