Foros del Web » Programando para Internet » PHP »

Subir imagen desde MySql con php a una web!

Estas en el tema de Subir imagen desde MySql con php a una web! en el foro de PHP en Foros del Web. Hola! Tengo el siguiente formulario: <FORM name="form2" action="agregarlibro.php" enctype="multipart/form-data" method="POST"> <div id="tablaregistro"> <table width="300" border="0" cellspacing="20"> <tr width="60%"> <td>Nombre:</td> <td><input name="nombre" type="text" id="nombre" size="30"></td> <td>Editorial:</td> ...
  #1 (permalink)  
Antiguo 06/02/2012, 11:31
 
Fecha de Ingreso: agosto-2009
Ubicación: Venezuela
Mensajes: 82
Antigüedad: 14 años, 8 meses
Puntos: 0
Pregunta Subir imagen desde MySql con php a una web!

Hola! Tengo el siguiente formulario:

<FORM name="form2" action="agregarlibro.php" enctype="multipart/form-data" method="POST">

<div id="tablaregistro">
<table width="300" border="0" cellspacing="20">

<tr width="60%">
<td>Nombre:</td>
<td><input name="nombre" type="text" id="nombre" size="30"></td>
<td>Editorial:</td>
<td><input name="editorial" type="text" id="editorial" size="30"></td>
</tr>

<tr>
<td>Autor:</td>
<td><input name="autor" type="text" id="autor" size="30"></td>
<td>Precio:</td>
<td><input name="precio" type="text" id="precio" size="10"><td>BsF</td></td>
</tr>

<tr>
<td>Resumen:</td>
<td><input name="resumen" id="resumen" size="30"></td>
<td>Descripcion:</td>
<td><input name="descripcion" id="descripcion" size="30"></td>
</tr>

<tr>
<td>Imagen:</td>
<td><input type="file" id="archivo" name="archivo"></td>
</tr>

</table>
</div> <!--Fin del div de la tabla de registro-->
<div id="botones">
<table>
<tr>
<td><input type="submit" value="Registrar" name="registrar"></td>
<td><input type="reset" name="borrar" value="Borrar"></td>
</tr>
</table>
</div>
</FORM>


Donde pido una serie de datos (string) para registrar un libro, entre los datos debo subir la imagen del libro que el usuario visualizara luego en la web... Cuando hago el registro me guarda todo bien en la BD, meeeeeeeenos la parte de la imagen que no tengo idea de como manejar... Ayudar por favor!!

Trabajo con PHP y MySql!
  #2 (permalink)  
Antiguo 06/02/2012, 11:35
Avatar de andresdzphp
Colaborador
 
Fecha de Ingreso: julio-2011
Ubicación: $this->Colombia;
Mensajes: 2.749
Antigüedad: 12 años, 9 meses
Puntos: 793
Respuesta: Subir imagen desde MySql con php a una web!

Insertas la ruta a la base de datos y subes el fichero al servidor.

Aquí explican como manejar la carga de ficheros:

http://www.php.net/manual/es/feature...ost-method.php
http://www.w3schools.com/php/php_file_upload.asp
__________________
Si sabemos como leer e interpretar el manual será mucho más fácil aprender PHP. En lugar de confiar en ejemplos o copiar y pegar - PHP
  #3 (permalink)  
Antiguo 06/02/2012, 11:37
Avatar de luis010182  
Fecha de Ingreso: julio-2009
Ubicación: Argentina - Capital Federal
Mensajes: 382
Antigüedad: 14 años, 9 meses
Puntos: 27
Respuesta: Subir imagen desde MySql con php a una web!

Deberias poner el codigo.

Pero como norma, lo mas recomendable no es guardar una imagen en la base de datos, sino el nombre si estan todas las imagenes en el mismo directorio, o la ruta si no es asi.

Pero no se bien cual es el error, por eso lo del codigo.
  #4 (permalink)  
Antiguo 06/02/2012, 11:55
 
Fecha de Ingreso: agosto-2009
Ubicación: Venezuela
Mensajes: 82
Antigüedad: 14 años, 8 meses
Puntos: 0
Respuesta: Subir imagen desde MySql con php a una web!

<?php

//Conecto con la BD..
require("conexion.php");

if (isset($_POST['registrar'])){

//Aqui defino las variables que me guardan los valores que registro en las cajas de texto en el formulario...
$nomb=$_POST['nombre'];
$prec=$_POST['precio'];
$edit=$_POST['editorial'];
$aut=$_POST['autor'];
$resu=$_POST['resumen'];
$descrip=$_POST['descripcion'];

// Validar si el registro ya existe en la base de datos. Si existe, no se inserta y muestra un mensaje...
$validar= "SELECT * FROM libros WHERE titulo='$nomb'";
$resultado=mysql_query($validar);

if (mysql_num_rows($resultado) == 0) {

$strsql= "INSERT INTO libros (titulo, resumen, descripcion_completa, precio, editorial, imagen, autor) VALUES ('$nomb','$resu','$descrip','$prec','$edit','$img' ,'$aut')";
$result=mysql_query($strsql);

mysql_query ("INSERT INTO bitacoras VALUES ('".$_SESSION['usuario']."',now(), now(), 'Agrego', 'Libros')");
echo "<script language='javascript'> alert ('Libro registrado exitosamente')</script>";

}
else {
echo "<script language='javascript'> alert ('Libro ya Existe')</script>";
}
}
?>

Aqui el codigo del php, no lo coloque antes porque solamente he tratado los otros datos, con la imagen no he hecho nada! He leido que es mejor guardar la ruta en la BD, pero como?
Lo que probe fue un $_POST['archivo'] pero no me guarda nada en la BD. Del resto no he sabido como manejarlo! =( ayudenme
  #5 (permalink)  
Antiguo 06/02/2012, 12:04
Avatar de luis010182  
Fecha de Ingreso: julio-2009
Ubicación: Argentina - Capital Federal
Mensajes: 382
Antigüedad: 14 años, 9 meses
Puntos: 27
Respuesta: Subir imagen desde MySql con php a una web!

no es muy dificil, lo que hace php es subir el archivo y lo coloca en una ubicacion temporal, tu trabajo consiste en reubicar el archivo en un lugar y ese lugar (ruta) lo guardas en la base de datos.

Aca ahi varios ejemplos. solo tenias que poner "como subir una imagen con php" en google

http://blog.unijimpe.net/upload-de-archivos-con-php/

http://www.programacionweb.net/artic...ticulo/?num=33

http://www.forosdelweb.com/f18/aport...on-php-568511/

http://www.hucreative.com/php/php2.html

http://emilio.aesinformatica.com/200...magen-con-php/

con el primero te deberia bastar.
  #6 (permalink)  
Antiguo 06/02/2012, 12:23
 
Fecha de Ingreso: agosto-2009
Ubicación: Venezuela
Mensajes: 82
Antigüedad: 14 años, 8 meses
Puntos: 0
Respuesta: Subir imagen desde MySql con php a una web!

Gracias, ya lo voy a revisar.. lo unico que he probado hasta ahora es crear una variable que me guarda el nombre de la foto:
$img=$_FILES['archivo']['name'];

y luego agregar esta linea:
move_uploaded_file($_FILES['archivo'] ['tmp_name'], "libros_img/".$_FILES['archivo']['name']);

y pues me guarda en la BD pero solo el nombre de la img =S

Consultare lo que me recomiendas y les cuento. Gracias por las rapidas respuestas...
  #7 (permalink)  
Antiguo 06/02/2012, 12:43
 
Fecha de Ingreso: agosto-2009
Ubicación: Venezuela
Mensajes: 82
Antigüedad: 14 años, 8 meses
Puntos: 0
Respuesta: Subir imagen desde MySql con php a una web!

ok creo que ya logre subir el archivo, (me guarda en la BD el nombre de la imagen); entonces al parecer mi preguntar realmente es como lo puedo visualizar en mi navegador? ya que al consultar me muestra es el nombre del archivo, mas no la imagen..

Gracias por sus aportes!
  #8 (permalink)  
Antiguo 06/02/2012, 12:52
Avatar de luis010182  
Fecha de Ingreso: julio-2009
Ubicación: Argentina - Capital Federal
Mensajes: 382
Antigüedad: 14 años, 9 meses
Puntos: 27
Respuesta: Subir imagen desde MySql con php a una web!

si las imagenes que pensas subir van a estar todas en el mismo directorio coloca la etiqueta img con la propiedad
src=http//www.tudominio.com.ar/rura/donde/guardas/las/imagenes/.$resultadoSQL[campoImagen]
si las vas a guardar en lugares diferentes tenes que guardar la ruta completa junto con el nombre del archivo en el campo de la base de datos.
y te quedaria
src=http//www.tudominio.com.ar/.$resultadoSQL[campoImagen]

La variable seria algo como
$resultadoSQL[campoImagen] = rura/donde/guardas/las/imagenes/nombreImagen.jpg
  #9 (permalink)  
Antiguo 06/02/2012, 13:10
 
Fecha de Ingreso: agosto-2009
Ubicación: Venezuela
Mensajes: 82
Antigüedad: 14 años, 8 meses
Puntos: 0
Respuesta: Subir imagen desde MySql con php a una web!

Mira mi codigo para mostrar datos:

<?php

//Conecto con la BD..
require("conexion.php");

if (isset($_POST['consultar'])){

//Definir variables..
$nomb=$_POST['libro'];

if ($nomb !=""){
// Validar si el registro ya existe en la base de datos.
$validar= "SELECT * FROM libros WHERE titulo='$nomb'";
$result=mysql_query($validar);


if (mysql_num_rows($result) == 0) {
echo "<script> alert ('Libro no existe')</script>";
}
else {


$consulta=mysql_fetch_array($result);

echo("<tr align=center><td><strong>Los datos del libro son:</strong></td></tr>");
echo "<table width='70%' border='3' bordercolor = orange height='50%'>\n";
echo "<tr>\n","<td><STRONG>Titulo:</STRONG></td><td>$consulta[1]</td></tr>\n";
echo "<tr>\n","<td><STRONG>Resumen:</STRONG></td><td>$consulta[2]</td></tr>\n";
echo "<tr>\n","<td><STRONG>Descripcion:</STRONG></td><td>$consulta[2]</td></tr>\n";
echo "<tr>\n","<td><STRONG>Precio:</STRONG></td><td>$consulta[4]</td></tr>\n";
echo "<tr>\n","<td><STRONG>Editorial:</STRONG></td><td>$consulta[5]</td></tr>\n";
echo "<tr>\n","<td><STRONG>Autor:</STRONG></td><td>$consulta[7]</td></tr>\n";
echo "<tr>\n","<td><STRONG>Imagen:</STRONG></td><td><imgsrc=http//http://localhost/Administrador/Libros_img/.$consulta[6]></td></tr>\n";
echo "</table>";
}
}
else { echo "<script> alert ('Debe insertar el nombre del libro')</script>"; }
}
?>

Pero sigue sin mostrarme la Imagen, sino que me muestra un cuadrito como si la img no estubiera o estubiera dañada.. Ayuda please, realmente soy nueva con esto (obvio jeje) =(
  #10 (permalink)  
Antiguo 06/02/2012, 13:15
Avatar de andresdzphp
Colaborador
 
Fecha de Ingreso: julio-2011
Ubicación: $this->Colombia;
Mensajes: 2.749
Antigüedad: 12 años, 9 meses
Puntos: 793
Respuesta: Subir imagen desde MySql con php a una web!

Por favor leer manual HTML:

http://www.w3schools.com/tags/tag_img.asp

Separa el atributo src y organiza la ruta:

http//http://localhost/Administrador/Libros_img ???
__________________
Si sabemos como leer e interpretar el manual será mucho más fácil aprender PHP. En lugar de confiar en ejemplos o copiar y pegar - PHP
  #11 (permalink)  
Antiguo 06/02/2012, 14:21
Avatar de luis010182  
Fecha de Ingreso: julio-2009
Ubicación: Argentina - Capital Federal
Mensajes: 382
Antigüedad: 14 años, 9 meses
Puntos: 27
Respuesta: Subir imagen desde MySql con php a una web!

Cita:
Iniciado por andresdzphp Ver Mensaje
Por favor leer manual HTML:

http://www.w3schools.com/tags/tag_img.asp

Separa el atributo src y organiza la ruta:

http//http://localhost/Administrador/Libros_img ???
Hace lo que dice andresdzphp y ademas agragar esto para que veas si esta armando bien la ruta de la imagen.
Depues copia la ruta en el navegador y eso te indica si esta bien armada.

Código PHP:

echo '<tr><td><STRONG> Imagen: </STRONG></td> <td><img  src="http://localhost/Administrador/Libros_img/'.$consulta[6].'"></td></tr>';

echo 
'<tr><td colpan="2"> http://localhost/Administrador/Libros_img/'.$consulta[6].'  </td></tr>'
  #12 (permalink)  
Antiguo 06/02/2012, 18:18
 
Fecha de Ingreso: septiembre-2007
Ubicación: PyRoot
Mensajes: 1.515
Antigüedad: 16 años, 7 meses
Puntos: 188
Respuesta: Subir imagen desde MySql con php a una web!



No hace daño
__________________
Si quieres agradecer el triangulo obscuro de la parte derecha debes presionar +.
  #13 (permalink)  
Antiguo 07/02/2012, 12:40
 
Fecha de Ingreso: agosto-2009
Ubicación: Venezuela
Mensajes: 82
Antigüedad: 14 años, 8 meses
Puntos: 0
Respuesta: Subir imagen desde MySql con php a una web!

Hace lo que dice andresdzphp y ademas agragar esto para que veas si esta armando bien la ruta de la imagen.
Depues copia la ruta en el navegador y eso te indica si esta bien armada.

Código PHP:

echo '<tr><td><STRONG> Imagen: </STRONG></td> <td><img  src="http://localhost/Administrador/Libros_img/'.$consulta[6].'"></td></tr>';

echo 
'<tr><td colpan="2"> http://localhost/Administrador/Libros_img/'.$consulta[6].'  </td></tr>'
[/QUOTE]

OK chevere ya entendi esta parte, tenia la ruta mal escrita pero igual sigue sin mostrar.. No entiendo nada..
  #14 (permalink)  
Antiguo 07/02/2012, 13:07
Avatar de andresdzphp
Colaborador
 
Fecha de Ingreso: julio-2011
Ubicación: $this->Colombia;
Mensajes: 2.749
Antigüedad: 12 años, 9 meses
Puntos: 793
Respuesta: Subir imagen desde MySql con php a una web!

Pues que tan dificil puede ser mostrar una imagen.

Código PHP:
Ver original
  1. <?php
  2.  
  3. $consulta[6] = 'html5.png'; //Esto es solo por el ejemplo
  4.  
  5. echo '<img src="images/' . $consulta[6] . '" />';

Primero que todo verifica que $consulta[6] tenga el nombre de la imagen, haciendo un echo $consulta[6], si lo imprime correctamente colocas la ruta con el nombre. En el ejemplo que te puse yo tengo mis imágenes en una carpeta llamada "images" entonces por eso puse images/ y le concateno el nombre de la imagen.

Revisa la ruta antes que todo. En mi caso la ruta es http://testing.local/images/html5.png y la muestra correctamente.

Cualquier cosa avisas.

Saludos.
__________________
Si sabemos como leer e interpretar el manual será mucho más fácil aprender PHP. En lugar de confiar en ejemplos o copiar y pegar - PHP
  #15 (permalink)  
Antiguo 07/02/2012, 16:20
 
Fecha de Ingreso: agosto-2009
Ubicación: Venezuela
Mensajes: 82
Antigüedad: 14 años, 8 meses
Puntos: 0
Respuesta: Subir imagen desde MySql con php a una web!

Listo! Gracias por sus aportes y disculpen tantas molestias!!

Por fin logre mostrar la imagen, no habia podido porque me faltaba la sentencia:
move_uploaded_file($_FILES['archivo'] ['tmp_name'], "libros_img/".$_FILES['archivo']['name']);

y por eso no se subian!! Obvio no? jeje mil gracias!!

Aqui mi codigo por si alguien mas lo necesita:

Este es para guardar la imagen:
<?php

//Conecto con la BD..
require("conexion.php");

if (isset($_POST['registrar'])){

//Aqui defino las variables que me guardan los valores que registro en las cajas de texto en el formulario...
$nomb=$_POST['nombre'];
$prec=$_POST['precio'];
$edit=$_POST['editorial'];
$aut=$_POST['autor'];
$resu=$_POST['resumen'];
$descrip=$_POST['descripcion'];
$img=$_FILES['archivo']['name'];


// Validar si el registro ya existe en la base de datos. Si existe, no se inserta y muestra un mensaje...
$validar= "SELECT * FROM libros WHERE titulo='$nomb'";
$resultado=mysql_query($validar);

if (mysql_num_rows($resultado) == 0) {


move_uploaded_file($_FILES['archivo'] ['tmp_name'], "libros_img/".$_FILES['archivo']['name']);
//$destino = "libros_img/".$prefijo."_".$img;
$destino = "http://localhost/Administrador/Libros_img/".$img;

//Insertamos el Registro en la tabla..
$strsql= "INSERT INTO libros (titulo, resumen, descripcion_completa, precio, editorial, imagen, autor) VALUES ('$nomb','$resu','$descrip','$prec','$edit','$img' ,'$aut')";
$result=mysql_query($strsql);

mysql_query ("INSERT INTO bitacoras VALUES ('".$_SESSION['usuario']."',now(), now(), 'Agrego', 'Libros')");
echo "<script language='javascript'> alert ('Libro registrado exitosamente')</script>";

}
else {
echo "<script language='javascript'> alert ('Libro ya Existe')</script>";
}
}
?>

Este es mi codigo para mostrar mi imagen:

<?php

//Conecto con la BD..
require("conexion.php");

if (isset($_POST['consultar'])){

//Definir variables..
$nomb=$_POST['libro'];

if ($nomb !=""){
// Validar si el registro ya existe en la base de datos.
$validar= "SELECT * FROM libros WHERE titulo='$nomb'";
$result=mysql_query($validar);

if (mysql_num_rows($result) == 0) {
echo "<script> alert ('Libro no existe')</script>";
}
else {
$consulta=mysql_fetch_array($result);

echo("<tr align=center><td><strong>Los datos del libro son:</strong></td></tr>");
echo "<table width='70%' border='3' bordercolor = orange height='50%'>\n";
echo "<tr>\n","<td><STRONG>Titulo:</STRONG></td><td>$consulta[1]</td></tr>\n";
echo "<tr>\n","<td><STRONG>Resumen:</STRONG></td><td>$consulta[2]</td></tr>\n";
echo "<tr>\n","<td><STRONG>Descripcion:</STRONG></td><td>$consulta[2]</td></tr>\n";
echo "<tr>\n","<td><STRONG>Precio:</STRONG></td><td>$consulta[4]</td></tr>\n";
echo "<tr>\n","<td><STRONG>Editorial:</STRONG></td><td>$consulta[5]</td></tr>\n";
echo "<tr>\n","<td><STRONG>Autor:</STRONG></td><td>$consulta[7]</td></tr>\n";
echo '<tr><td><STRONG> Imagen: </STRONG></td><td><img src="http://localhost/Administrador/Libros_img/'.$consulta[6].'"></td></tr>';
echo "</table>";
}
}
else { echo "<script> alert ('Debe insertar el nombre del libro')</script>"; }
}
?>

Umm otra molestia: mis avisos javascript estan descontrolados, es decir no aparecen solo cuando deben sino, cuando doy f5, o cuando abro la pagina, supongo que estan mal ubicados o algo =s si me pueden ayudar con esto tambien porfis y disculpen tanta pregunta! =)

Etiquetas: formulario, mysql, registro, tabla, usuarios
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 20:55.