Foros del Web » Programación para mayores de 30 ;) » Java »

Recoger el path de un input file para utilizarlo y guardar imagen en mysql

Estas en el tema de Recoger el path de un input file para utilizarlo y guardar imagen en mysql en el foro de Java en Foros del Web. Buenos dias a todos, estoy realizando una aplicacion donde en el backend quiero guardar la imagenes en una base de datos. Guardar ya me guarda ...
  #1 (permalink)  
Antiguo 19/12/2016, 07:13
 
Fecha de Ingreso: octubre-2013
Mensajes: 79
Antigüedad: 11 años, 2 meses
Puntos: 1
Recoger el path de un input file para utilizarlo y guardar imagen en mysql

Buenos dias a todos,

estoy realizando una aplicacion donde en el backend quiero guardar la imagenes en una base de datos.
Guardar ya me guarda las imagenes cuando pongo en File fichero = new File(path);
en la variable path manualmente la ruta de la carpeta hasta el fichero.
Pero claro yo lo que quiero es que desde el equipo cliente que sea carge su ruta absoluta en el .jsp y la pase al servlet para que este guarde la imagen en la BBDD.
No quiero cargar la imagen en el servidor con apache.commons(entre otras porque tengo la duda, solo la carga ó tambien la guarda en el servidor? porque si la guarda lo veo tonteria estar almacenando por duplicado imagenes)

Paso el codigo, gracias :)


package Imagenes;

/*son las librerias para ayudar al despliegue de servlets*/
import java.io.IOException;
import java.io.PrintWriter;
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 java.io.*;

/*son las librerias para ejecutar todas las sentencias sql y configurar el driver de jdbc*/
import java.sql.*;


import java.io.File;
import java.io.FileInputStream;

@WebServlet(urlPatterns = {"/subirImagen"})
public class subirImagen extends HttpServlet {

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

response.setContentType("text/html;charset=UTF-8");
PrintWriter out = response.getWriter();

try {

String d = "com.mysql.jdbc.Driver";
Class.forName(d);
String sURL = "jdbc:mysql://localhost:3306/imagenes";
Connection Conexion;
Conexion = DriverManager.getConnection(sURL, "root", "oldViews17");

PreparedStatement misentencia;
misentencia = Conexion.prepareStatement("INSERT INTO imagenes VALUES (?,?,?)");
Conexion.setAutoCommit(false);
String Nombre = request.getParameter("Nombre");
String Descripcion = request.getParameter("Descripcion");
String imagen = request.getParameter("Imagen");
File fichero = new File(imagen);
out.println("la ruta absoluta es" + fichero.getAbsolutePath());
//ruta puede ser: "/home/cmop/Desktop/1.jpg"
FileInputStream fis = new FileInputStream(imagen);
//Lo convertimos en un Stream

//Asignamos el Stream al Statement
misentencia.setString(1, Nombre);
misentencia.setString(2, Descripcion);
misentencia.setBinaryStream(3, fis, (int) imagen.length());

misentencia.executeUpdate();
Conexion.commit();

out.println("la variable nombre tiene el nombre:" + request.getParameter("Nombre"));

out.println("Datos almacenados de forma exitosa");
} catch (SQLException ex) {
out.println(ex);
} catch (ClassNotFoundException ex) {
out.println(ex);
}
}

}


Pego el codigo del JSP por si sirve de alguna idea:

<jsp:useBean id="imagen" class="Imagenes.Imagen"/>
<jsp:setProperty name="imagen" property="*" />
<%@page contentType="text/html" pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>JSP Page</title>
</head>
<body>
<form method="post" action="subirImagen">
<label>Nombre:</label>
<input type="text" id="txtNombreImagen" name="Nombre">

<label>Descripción:</label>
<input type="text" id="txtDescripcion" name="Descripcion">

<label id='label'>Imagen: </label>
<input type="Hidden" id="vaya" name="Ruta" >
<input type="file" id="txtDescripcion" name="Imagen">



<input type="submit" id="idEnviar" value="Enviar">
</form>

</body>
</html>
  #2 (permalink)  
Antiguo 19/12/2016, 08:37
 
Fecha de Ingreso: octubre-2013
Mensajes: 79
Antigüedad: 11 años, 2 meses
Puntos: 1
Respuesta: Recoger el path de un input file para utilizarlo y guardar imagen en mysql

Pensandolo mejor, voy a necesitar utilizar fileUpload y cargarlo al servido, porque haber en el lado cliente como consigo pasarle por AJAX la ip del cliente.

Entonces reformulo mi pregunta :) si con fileUpload lo cargo en el servidor se esta guardando la imagen permanentemente en le servidor? si es asi hay alguna forma de borrarla despues de utlizar la imagen para guardarla en la BBDD?

Gracias!

Etiquetas: file, input, jsp, mysql, path, recoger, set, string
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 12:36.