Foros del Web » Programando para Internet » PHP »

Subir imagenes a carpetas y colocar enlaces en base de datos

Estas en el tema de Subir imagenes a carpetas y colocar enlaces en base de datos en el foro de PHP en Foros del Web. Hola a todos. Mi nombre es Javy. Después de mirar y remirar los post y usar, de muchas maneras, la Busqueda, he optado por hacer ...
  #1 (permalink)  
Antiguo 02/07/2007, 10:56
 
Fecha de Ingreso: septiembre-2002
Mensajes: 153
Antigüedad: 21 años, 7 meses
Puntos: 1
Subir imagenes a carpetas y colocar enlaces en base de datos

Hola a todos.

Mi nombre es Javy.

Después de mirar y remirar los post y usar, de muchas maneras, la Busqueda, he optado por hacer la pregunta directamente.

- He hecho una página con php desde la cual subo imágenes a unas carpetas concretas.

Cuando le doy al botón de "Enviar" me muestra la imagen subida y el nombre que le pone.

Lo que necesitaba es que, a la vez que me sube la imagen, metiese en una tabla de la base de datos, un enlace para estas imágenes para, luego, desde otra página (productos.php) me muestre el resultado de una búsqueda (que ya está hecha) de la siguiente manera:

PRODUCTO - CATEGORIA - SUBCATEGORIA - FABRICANTE - PRECIO - IMAGEN
Opel Corsa - Coche - Utilitario - Opel - x € - imagen del coche (en pequeño)

- Luego, que al pulsar sobre la imagen pequeña, abra una página con la imagen en grande.

Les puedo asegurar que he revisado los resulatdos que me ha devuelto la "Búsqueda", tanto de el foro de MySql como el de PHP y no he encontrado algo parecido.

¿Me podrían echar un cable?... estoy aprendiendo poco a poco y llegar hasta aquí me ha supuesto un gran esfuerzo y conocimiento.

Gracias de todos modos y un gran saludo:

Javy

Última edición por javy; 02/07/2007 a las 11:09
  #2 (permalink)  
Antiguo 02/07/2007, 11:08
Avatar de Genetix  
Fecha de Ingreso: febrero-2002
Ubicación: Lima - Perú
Mensajes: 1.600
Antigüedad: 22 años, 2 meses
Puntos: 45
Re: Subir imagenes a carpetas y colocar enlaces en base de datos

Hola
Me imagino que estas subiendo el archivo con un campo File y estas usando $_FILE, para recuperarlo, si es así pues al momento de guardar tu imagen en la carpeta el nombre de la imagen lo puedes capturar con $_FILE["tu_file"][name], y eso guardarlo en tu DB

Saludos!
  #3 (permalink)  
Antiguo 02/07/2007, 11:13
 
Fecha de Ingreso: septiembre-2002
Mensajes: 153
Antigüedad: 21 años, 7 meses
Puntos: 1
Re: Subir imagenes a carpetas y colocar enlaces en base de datos

Hola Genetix.

No estoy muy seguro de tu pregunta. Lo que hago es subir un jpg a una carpeta determinada, usando este código:

<?php
if(isset($submit)){
if (is_uploaded_file($_FILES['imagen']['tmp_name'])) {
//revisar que sea jpg
if ($_FILES['imagen']['type'] == "image/jpeg" || $_FILES['imagen']['type'] == "image/pjpeg"){
//nuevo nombre para la imagen
$nuevoNombre = time().".jpg";
//mover la imagen
move_uploaded_file($_FILES['imagen']['tmp_name'], "../../img_productos/webcams/$nuevoNombre");
//obtener la inforamción
$data = GetImageSize("../../img_productos/webcams/$nuevoNombre");
//mensaje de éxito
echo "<img src='../../img_productos/webcams/$nuevoNombre' $data[3]> <br> imagen $nuevoNombre subida con éxito";
}else{
echo "Formato no válido para fichero de imagen";
}
} else {
echo "Error al cargar imagen: " . $_FILES['imagen']['name'];
}
}
?>

<form enctype="multipart/form-data" action="<? echo $PHP_SELF;?>" method="post">
<p>
<input type="hidden" name="MAX_FILE_SIZE" value="100000">
Subir esta imagen:</p>
<p>
<input name="imagen" type="file" size="100">
</p>
<p>
<input type="submit" name='submit' value="Subir Web Cams">
</p>
</form>

- Cuando se le da a "Enviar", me muestra la imagen y su nombre.

- Lo que quisiera hacer es que, además de esto, me guardase la ruta en una tabla para luego poder mostrarla.
  #4 (permalink)  
Antiguo 02/07/2007, 11:27
Avatar de Genetix  
Fecha de Ingreso: febrero-2002
Ubicación: Lima - Perú
Mensajes: 1.600
Antigüedad: 22 años, 2 meses
Puntos: 45
Re: Subir imagenes a carpetas y colocar enlaces en base de datos

Hola
Tu script quedaría así,


Código PHP:

if(isset($submit)){
if (
is_uploaded_file($_FILES['imagen']['tmp_name'])) {
//revisar que sea jpg
if ($_FILES['imagen']['type'] == "image/jpeg" || $_FILES['imagen']['type'] == "image/pjpeg"){
//nuevo nombre para la imagen
$nuevoNombre time().".jpg";
//mover la imagen
move_uploaded_file($_FILES['imagen']['tmp_name'], "../../img_productos/webcams/$nuevoNombre");
//obtener la inforamción
$data GetImageSize("../../img_productos/webcams/$nuevoNombre");

/*Inserto el nombre dentro de la Base de datos*/
/*=======================================*/
mysql_query("INSERT INTO tu_tabla (id, ruta) VALUES ('1',$nuevoNombre)  ");
/*===============================================*/
//mensaje de éxito
echo "<img src='../../img_productos/webcams/$nuevoNombre' $data[3]> <br> imagen $nuevoNombre subida con éxito";
}else{
echo 
"Formato no válido para fichero de imagen";
}
} else {
echo 
"Error al cargar imagen: " $_FILES['imagen']['name'];
}

NOTA: el insert lo puedes cambiar por un UPDDATE según sea tu caso
  #5 (permalink)  
Antiguo 02/07/2007, 11:42
 
Fecha de Ingreso: septiembre-2002
Mensajes: 153
Antigüedad: 21 años, 7 meses
Puntos: 1
Re: Subir imagenes a carpetas y colocar enlaces en base de datos

Gracias de nuevo Genetix, pero si no me equivoco, con tu código, lo único que metería en la base de datos sería el nombre_de_la_imagen.jpg. ¿No?.

Igual es que lo que necesito no se puede hacer; es decir:

1 - subo una imagen a una carpeta. Me muestra la imagen.

2 - Esta imagen tiene una ruta: por ejemplo:

../../img_productos/webcams/1.jpg

3 - Lo que necesito es que se introduzca esta ruta para luego asociarla a un producto (Tabla fotos - Tabla productos con la id de fotos), y que en el resultado de una búsqueda, al aparecer el producto en cuestión, muestre esa foto.

Ya siento esta insistencia, pero esta es mi única vía para preguntar y aprender...

Gracias otra vez:

Javy
  #6 (permalink)  
Antiguo 02/07/2007, 11:45
Avatar de Genetix  
Fecha de Ingreso: febrero-2002
Ubicación: Lima - Perú
Mensajes: 1.600
Antigüedad: 22 años, 2 meses
Puntos: 45
Re: Subir imagenes a carpetas y colocar enlaces en base de datos

También lo puedes poner con toda la ruta

mysql_query("INSERT INTO tu_tabla (id, ruta) VALUES ('1','../../img_productos/webcams/'.$nuevoNombre);
  #7 (permalink)  
Antiguo 02/07/2007, 11:57
 
Fecha de Ingreso: septiembre-2002
Mensajes: 153
Antigüedad: 21 años, 7 meses
Puntos: 1
Re: Subir imagenes a carpetas y colocar enlaces en base de datos

Muchas gracias, de verdad.

Lo único, y espero que sea lo último:

- ¿Cuál es la función del '1' dentro de:

('1','../../img_productos/webcams/'.$nuevoNombre);

- ¿Cómo cargo luego la imagen?. Quiero decir: ya está la imagen en su carpeta y el enlace en la base de datos.
Supongo que si le pido a PHP que me muestre "esa ruta", me mostrará sólo eso: el texto del enlace, no la imagen como tal ¿no?.

Saludos:

Javy (y ya lo siento, de verás)
  #8 (permalink)  
Antiguo 02/07/2007, 12:01
Avatar de Genetix  
Fecha de Ingreso: febrero-2002
Ubicación: Lima - Perú
Mensajes: 1.600
Antigüedad: 22 años, 2 meses
Puntos: 45
Re: Subir imagenes a carpetas y colocar enlaces en base de datos

- ¿Cuál es la función del '1' dentro de:
el 1 es solo por ejemplo, ahí pude ir tu ID, pero si tu ID es autonumerico, lo debes dejar en blanco.
('','../../img_productos/webcams/'.$nuevoNombre);

- ¿Cómo cargo luego la imagen?. Quiero decir: ya está la imagen en su carpeta y el enlace en la base de datos.
Supongo que si le pido a PHP que me muestre "esa ruta", me mostrará sólo eso: el texto del enlace, no la imagen como tal ¿no?.


Así es es solo te mostrara el texto, pero eso lo puedes poner dentro de las etiquetas <img> y te mostrará la imagen
  #9 (permalink)  
Antiguo 03/07/2007, 01:05
 
Fecha de Ingreso: septiembre-2002
Mensajes: 153
Antigüedad: 21 años, 7 meses
Puntos: 1
Re: Subir imagenes a carpetas y colocar enlaces en base de datos

Hola de nuevo:

Gracias Genetix por tu ayuda.

Funciona: subo la imagen y me mete el enlace en la base de datos.

Lo que no tengo muy claro es lo siguiente:

el enlace que me pone en la base de datos es el siguiente:

../../imagenes/productos/accesorios_varios/1183443642.jpg

creo que está bien, puesto que ahí es donde va la imagen.

Lo que no me sale, es el mostrarla.

He probado como tú me dijiste (con <img>), pero no me va ni a tiros.

Supongo que debo usar:

echo <img src=... >

La tabla donde se ubica el enlace se llama fotos.

La ID es fot_fit y el campo se llama foto.

Lo que necesito es que desde la página resultado.php, me muestre la imagen del producto x que le corresponde la fot_fit x. (espero haberme explicado).

¿Qué es lo que se me está pasando por alto?

Gracias por todo:

Javy
  #10 (permalink)  
Antiguo 03/07/2007, 05:50
 
Fecha de Ingreso: septiembre-2002
Mensajes: 153
Antigüedad: 21 años, 7 meses
Puntos: 1
Re: Subir imagenes a carpetas y colocar enlaces en base de datos

Ya está... conseguido... menudo dolor de cabeza...

Ahora, voy a por el siguiente paso.

Gracias por todo:

Javy
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.
Tema Cerrado




La zona horaria es GMT -6. Ahora son las 19:54.