entre Desarrolladores

Recibe ayuda de expertos

Registrate y pregunta

Es gratis y fácil

Recibe respuestas

Respuestas, votos y comentarios

Vota y selecciona respuestas

Recibe puntos, vota y da la solución

Pregunta

3votos

Problema al subir imagen a una carpeta del servidor

hola tengo un problema me arroja este error: java.lang.NullPointerException
no me insertar en los campos descripcion y nombre de la imagen
(modeloImagen modeloImagen, String realPath) {

    //INSERTAR EL NOMBRE DE LA IMAGEN A LA TABLA DE EMPLEADO
    String insertar4 = "INSERT INTO IMAGEN(ID_IMAGEN,DESCRIPCION,IMAGEN) VALUES(?,?,?);";
    String consultar1 = "SELECT MAX(ID_IMAGEN) AS ID FROM EMPLEADO;";
    String consultar2 = "SELECT MAX(ID_TRABAJADOR) AS ID FROM TRABAJADOR;";

       //inicializo las variables para utilizarla maxTrabajador en el momento de renombrar por el id del trabajador
       int maxEmpleadoImagen = 0, maxTrabajador = 0;
       int aux=0;

    PreparedStatement psmt = null, psmt1 = null,psmt2=null;
    ResultSet  tabla1 = null,tabla2=null;
    boolean insertOK = false;

    try {
        Context ctx = new InitialContext();
        DataSource ds = (DataSource) ctx.lookup("java:comp/env/jdbc/mantenimiento");
        Connection con = ds.getConnection();
        //consulta que toma el ultimo id de la tabla registrar imagen 
       if (psmt1.executeUpdate() == 1) {
                psmt1 = con.prepareStatement(consultar1);
                System.out.println(consultar1);
                tabla1 = psmt1.executeQuery();
                tabla1.next();
               el valor almacenado lo asigno a maxImagen
                maxImagen = tabla1.getInt(1);
                aux = 1;
                psmt1.close();
                tabla1.close();
                insertOK = true;

            //inicia consulta por id max del trabajador
        if (insertOK == true) {
            psmt2 = con.prepareStatement(consultar2);
            tabla2 = psmt2.executeQuery();
            tabla2.next();
            maxTrabajador = tabla2.getInt(1);
            psmt2.close();
            tabla2.close();
        } else {
            insertOK = false;
        }
        //inicia para registrar los datos de la tabla imagen
        psmt = con.prepareStatement(insertar4);
        System.out.println(insertar4);
        psmt.setInt(1, maxEmpleadoImagen);
        psmt.setString(2,modeloImagen.getDescripcion());

        if (modeloImagen.getImagen() != null && modeloImagen.getImagen().compareTo("sinfoto.jpg") != 0) {
            es donde creo ds objetos de tipo File en el cual indica la ruta  y se renombra por el id max del trabajador 
            File file = new File(realPath + "/img/fotos/" + modeloImagen.getImagen());
            File file2 = new File(realPath + "/img/fotos/" + maxTrabajador + ".jpg");
            if (file2.exists()) {
                file2.delete();
            }
            boolean success = file.renameTo(file2);
            if (!success) {
            }
             psmt.setString(3, maxTrabajador + ".jpg");
}else {
                    psmt.setString(3, "sinfoto.jpg");
                }
        if (psmt.executeUpdate() == 1) {
                    insertOK = true;
                    aux = 1;
                } else {
                    insertOK = false;
                }

        } else {
                insertOK = false;
            }

         psmt.close();

        File folder = new File(realPath + "/img/trabajadores/" + maxTrabajador);
        folder.mkdir();

        if (folder.isDirectory()) {
            insertOK = true;
        } else {
            insertOK = false;
        }
        con.close();             
    } catch (Exception e) {
        System.out.println(e);
    }
    return insertOK;
}}

0voto

white comentado

en que linea del código que pones te da el error java.lang.NullPointerException? cual es el código de modeloImagen?

0voto

Cristi_C comentado

Al momento de insertar los datos descripcion y el nombre de la imagen a la tabla me manda el error, el modeloImagen es el objeto que creo de la clase para traer los atributos getIdImagen(),getDescripcion(),getImagen(),

ya me insertar a la base de datos la descripcion, pero en el campo de imagen me pone 0.jpg, y yo quiero ponerle el nombre del id del trabajador en vez de 0.jpg lo renombre a 1.jpg, luego 2.jpg y asi sucesivamente

Por favor, accede o regístrate para responder a esta pregunta.

Otras Preguntas y Respuestas


...

Bienvenido a entre Desarrolladores, donde puedes realizar preguntas y recibir respuestas de otros miembros de la comunidad.

Conecta