cuando cargo un archivo me da el siguiente error
Processing of multipart/form-data request failed
de antemano agradesco la yuda
estoy usando servlets y jsp
| |||
Mira a mi un error igual me daba cuando tenia un formulario en html y intentaba cargar el archivo. te paso como tengo yo definido el formulario <form action="/SERVAUTO/resumenbd" method="post" name="BaseNueva" enctype="multipart/form-data"> lo uqeme faltaba era el enctype. A ver si te ayuda. Un salduo |
| |||
este es mi servlet que carga ael archivo y lo agrega al servidor a la vez se debe guardar los datos en la base de datos, si no utilizo el metodo processRequest(request, response) funciona y se agregan los datos a la base de el problema es con el upload, me da el siguiente error : edu.plantilla.admin.servlet.ServletNormativa; Mensaje:java.lang.NullPointerException package edu.plantilla.admin.servlet; import java.io.File; import java.io.IOException; import java.sql.Connection; import java.sql.ResultSet; import java.sql.SQLException; import java.sql.Statement; import java.util.Iterator; import java.util.List; import javax.servlet.ServletException; 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 edu.plantilla.admin.dao.*; import edu.plantilla.bean.*; import edu.plantilla.util.*; public class ServletNormativa extends HttpServlet{ private Connection getConnection() { MySqlDBConn cnx = new MySqlDBConn(); return cnx.getConnection(); } public void service( HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { String sTipo = request.getParameter("tipo"); String cod_normativa; String cod_indicador; String nom_normativa; String dir_imagen_normativa; BeanNormativa objEntidad = new BeanNormativa(); // --- Obtenemos el DAOFactory y luego el DAO especifico DAOFactory objDAOFactory=DAOFactory.getDAOFactory(DAOFactory. MYSQL); NormativaDAO objNormativaDAO =objDAOFactory.getNormativaDAO(); try { if (sTipo.equals("insertar")) { cod_normativa= request.getParameter("cod_normativa"); cod_indicador= request.getParameter("cod_indicador"); nom_normativa= request.getParameter("nom_normativa"); dir_imagen_normativa= request.getParameter("dir_imagen_normativa"); objEntidad.setCod_indicador(cod_indicador); objEntidad.setNom_normativa(nom_normativa); objEntidad.setDir_imagen_normativa(dir_imagen_norm ativa); System.out.println("LO QUE SE ESTÁ VIENDO Cod_indicador1 "+cod_indicador); Lista objLista = null; BuscaCodigo(request,response,objLista,cod_normativ a,nom_normativa,cod_indicador); System.out.println("LO QUE SE ESTÁ VIENDO Cod_indicador5 "+cod_indicador); //Inserta el Bean. if(nom_normativa!=""){ System.out.println("Paso 1 Antes del METODO"); //***********llamo al metodo de upload para cargarlo e insertarlo a la base de datos processRequest(request, response); System.out.println("Paso 2 Despues del METODO"); objNormativaDAO.insertar(objEntidad); } else { getServletContext().getRequestDispatcher("/msg.jsp?tipo=error&titulo=Cliente&descripcion=Erro r en el Proceso el numero de medida ingresado es vacio &continua=javascript:window.history.back()").forwa rd(request,response); request.setAttribute("cod_indicador1",cod_indicado r); //getServletContext().getRequestDispatcher("/medida.jsp").forward(request,response); } request.setAttribute("cod_indicador1",cod_indicado r); getServletContext().getRequestDispatcher("/normativa.jsp").forward(request,response); System.out.println("LO QUE SE ESTÁ VIENDO Cod_indicador1 "+cod_indicador); } else if (sTipo.equals("actualizar")) { //Captura los parametros que llegan de la Web. cod_normativa= request.getParameter("cod_normativa"); cod_indicador= request.getParameter("cod_indicador"); nom_normativa = request.getParameter("nom_normativa"); dir_imagen_normativa = request.getParameter("dir_imagen_normativa"); //Llena el Bean objEntidad.setCod_normativa(cod_normativa); objEntidad.setCod_indicador(cod_indicador); objEntidad.setNom_normativa(nom_normativa); objEntidad.setDir_imagen_normativa(dir_imagen_norm ativa); //Actualiza segun el Bean. Lista objLista = null;//************************************ BuscaCodigo(request,response,objLista,cod_normativ a,nom_normativa,cod_indicador);//************** if(nom_normativa!=""){ objNormativaDAO.actualizar(objEntidad); } if(nom_normativa==""){ getServletContext().getRequestDispatcher("/msg.jsp?tipo=error&titulo=Cliente&descripcion=Erro r en el Proceso debe ingresar el nombre del color &continua=javascript:window.history.back()").forwa rd(request,response); } System.out.println("Actualizar"+objNormativaDAO); System.out.println("request.setAttribute cod_color "+cod_indicador); request.setAttribute("cod_indicador1",cod_indicado r); getServletContext().getRequestDispatcher("/normativa.jsp").forward(request,response); } else if (sTipo.equals("eliminar")) { cod_normativa = request.getParameter("cod_normativa"); objNormativaDAO.eliminar(cod_normativa); getServletContext().getRequestDispatcher("/normativa.jsp").forward(request,response); } } catch (Exception e) { response.sendRedirect( "msg.jsp?tipo=error&titulo=Cliente&descripcion=Err or en el Proceso&continua=javascript:window.history.back()" ); System.out.println("Proyecto: "+ Parametros.S_APP_NOMBRE + "; Clase: " + getClass().getName()+ "; Mensaje:"+ e); } } private void processRequest(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { String rootPath, uploadDirectory; System.out.println("Paso 1 Antes del MENSAJE"); String nextPage = "/mensaje.jsp"; System.out.println("Paso 1 Antes del MENSAJE"); System.out.println("Paso 1"); StringBuffer mensaje = new StringBuffer(); System.out.println("Paso 2"); // --- directorio en el que se grabaran los archivos cargados //uploadDirectory = "/archivosCargados/"; uploadDirectory = "/images/productos/"; System.out.println("Paso 3"); // --- ruta fisica en disco de la aplicacion web rootPath = getServletContext().getRealPath("").toString(); System.out.println("Paso 4"); try { DiskFileUpload fu = new DiskFileUpload(); fu.setSizeMax(1024 * 512); // --- 512 K List fileItems = fu.parseRequest(request); if (fileItems == null) { mensaje.append("No existen archivos para ser cargados"); return; } mensaje.append("Carga exitosa <br>"); // --- Iteramos en el while por cada archivo enviado Iterator i = fileItems.iterator(); FileItem actual = null; while (i.hasNext()) { actual = (FileItem) i.next(); //FileItem if (actual.isFormField()) { //es cualquier objeto check,combo ,etc String action; String id = actual.getFieldName(); String value = actual.getString(); System.out.println("id: "+id); System.out.println("value: "+value); } else { String fileName = actual.getName(); System.out.println("fileName " + fileName); // --- validamos que el nombre del archivo no sea vacio if (!fileName.trim().equals("")) { // --- construimos un objeto file para recuperar la ruta // completa File archivo = new File(fileName); mensaje.append("<br><br>El nombre del archivo es " + archivo.getName()); File directorio = new File(rootPath + uploadDirectory); if (!directorio.exists()) { directorio.mkdirs(); // --- ruta absoluta del archivo archivo = new File(rootPath + uploadDirectory+ archivo.getName()); // escribimos el archivo actual.write(archivo); } } } } catch (Exception e) { mensaje.append("<br><br>Error de Aplicación " + e.getMessage()); } request.setAttribute("mensaje", mensaje.toString()); System.out.println("mensaje"+ mensaje.toString()); } private Lista BuscaCodigo(HttpServletRequest re, HttpServletResponse res, Lista objLista, String cod_normativa, String nom_normativa, String cod_indicador) throws Exception { Lista objListaLN = new Lista(); BeanNormativa objEntidad = null; String sql = ""; Connection conn = getConnection(); Statement stm = conn.createStatement(); DAOFactory objDAOFactory=DAOFactory.getDAOFactory(DAOFactory. MYSQL); NormativaDAO objNormativaDAO =objDAOFactory.getNormativaDAO(); sql="select cod_normativa,nom_normativa,cod_indicador from tb_normativa where nom_normativa='"+nom_normativa+"' and cod_indicador='"+cod_indicador+"'"; ResultSet rst = stm.executeQuery(sql); System.out.println("*************Aqui me da el setNom_producto del producto "+ sql) ; while (rst.next()) { objEntidad = new BeanNormativa(); objEntidad.setCod_normativa(rst.getString(1)); objEntidad.setNom_normativa(rst.getString(2)); objEntidad.setCod_indicador(rst.getString(3)); System.out.println("*************Aqui me da el setCod_normativa del normativa "+rst.getString(2)) ; System.out.println("Aqui me da el setCod_indicador del normativa "+rst.getString(3)) ; objListaLN.setElemento(objEntidad); String coma = rst.getString(2); String coma2 = rst.getString(3); if((!coma.equals("") || coma!=nom_normativa || coma2.equals(cod_indicador))){ System.out.println(" el codigo ingresado es repetido " + coma ); System.out.println(" el codigo ingresado es repetido " + coma2 ); System.out.println(" el codigo ingresado es repetido " + coma2.equals(cod_indicador) ); HttpServletResponse response = null; //getServletContext().getRequestDispatcher("/msg.jsp?tipo=error&titulo=Cliente&descripcion=Erro r en el Proceso el numero de normativa ingresado es repetido &continua=normativa.jsp").forward(re,res); response.sendRedirect("msg.jsp?tipo=error&titulo=C liente&descripcion=Error en el Proceso&continua=javascript:window.history.back()" ); //System.out.println("este es el error toString " + e.toString()); } } rst.close(); stm.close(); conn.close(); return objListaLN; } } |
| |||
este es mi jsp <%@page import="edu.plantilla.bean.*" %> <%@page import="edu.plantilla.admin.dao.*" %> <%@page import="edu.plantilla.util.*" %> <%@page import="edu.plantilla.admin.servlet.*" %> <% DAOFactory daoFactory=DAOFactory.getDAOFactory(DAOFactory.MYS QL); IndicadorDAO objIndicadorDAO =daoFactory.getIndicadorDAO(); String cod_indicador = (String)request.getParameter("cod_indicador"); String archivo=(String)request.getAttribute("archivo"); Lista objLista5=null; objLista5=objIndicadorDAO.ListarIndicadorNormativa Inserts(); %> <html> <head> <title>Ingreso de Normativas</title> <link href="estilos/style_form.css" rel="stylesheet" type="text/css"> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> <script language="JavaScript"> <!-- function f_reset(){ document.forms[0].reset(); } function f_ingresar(){ document.forms[0].target='main'; document.forms[0].action='servletnormativa'; document.forms[0].submit(); window.close(); } //--> </script> </head> <body bgcolor="#D6D3CE"> <table border="0" width="100%" height="350" cellspacing="0" cellpadding="0"> <tr> <td width="17%" valign="top"> </td> <td valign="top"><font face="Arial"><b> </b></font> <p align="center"><font size="3"> <img src="images/sekur_logo_apli.gif" width="220" height="70"> </font></p> <form name="form1" method="POST" enctype='multipart/form-data' action=""> <input type="hidden" name="cod_indicador" value="<%=cod_indicador%>"> <input type="hidden" name="tipo" value="insertar"> <div align="center"> <center> <table border="0" cellpadding="0"> <tr> <tr> <td width="37%" ><FONT SIZE="2" FACE="Verdana,Tahoma,Arial,Helvetica">nombre normativa</FONT></td> <td width="63%"><input type="text" name="nom_normativa" size="20"></td> </tr> <tr> <td width="37%" ><FONT SIZE="2" FACE="Verdana,Tahoma,Arial,Helvetica">direccion</FONT></td> <td width="63%"> <input type="file" name="dir_imagen_normativa"> </form> </td> </tr> </tr><tr> <td width="37%" ></td> <td width="63%"></td> </tr> <tr> <td align=center ><FONT SIZE="1" FACE="Verdana,Tahoma,Arial,Helvetica"></FONT></td> </tr> </table> <p> <input align="left" value="Ingresar" type='button' onClick="javascript:f_ingresar();"> <input align="left" type='button' value='Limpiar' onClick="javascript:f_reset();"> </p> </center> </div></form><p> </td> </tr> </table></body> </html> |
| |||
Respuesta: error al cargar archivo Cita: Hermano, estas Hecho polvo, revisa cualquier parte de ese codigo que posiblemente no has inicializado una variable, o uno de tus metodos devuelve nullSaludos |