Foros del Web » Programando para Internet » PHP »

Me rindo. Imagen Base de datos para variar T_T.

Estas en el tema de Me rindo. Imagen Base de datos para variar T_T. en el foro de PHP en Foros del Web. Soy nuevo en este foro, aunque he sido anonimo durante mucho leyendolo, pero esta vez necesitaba hablar. He buscado por todo el foro sin parar, ...
  #1 (permalink)  
Antiguo 10/02/2009, 16:52
 
Fecha de Ingreso: febrero-2009
Mensajes: 52
Antigüedad: 15 años, 2 meses
Puntos: 0
Me rindo. Imagen Base de datos para variar T_T.

Soy nuevo en este foro, aunque he sido anonimo durante mucho leyendolo, pero esta vez necesitaba hablar. He buscado por todo el foro sin parar, y lo que quiero hacer es que a traves de un formulario, pueda subir una imagen a una carpeta del host, y copiar la ruta al campo correspondiente de la base de datos. Tipica pregunta no?. Pero por mas que miro, busco y me como la cabeza no consigo hacerlo. Aver si me pueden ayudar.

Código PHP:
if (isset($_POST['Registrar'])) { 
    if(
is_uploaded_file($_FILES['Foto1']['tmp_name'])) { // verifica haya sido cargado el archivo
        
$ruta"./images/".$_FILES['Foto1']['name']; // Se guardaría dentro de "carpeta" con el nombre original
        
if(move_uploaded_file($_FILES['Foto1']['tmp_name'], $ruta;)) { // se coloca en su lugar final
                    
echo "<b>Upload exitoso!. Datos:</b><br>";
            echo 
"Nombre: <i><a href=\"".$_FILES['Foto1']['name']."\">".$_FILES['Foto1']['name']."</a></i><br>";
            echo 
"Tipo MIME: <i>".$_FILES['Foto1']['type']."</i><br>";
                    echo 
"Peso: <i>".$_FILES['Foto1']['size']." bytes</i><br>";
                        echo 
"<br><hr><br>";
        }
    } 
Hay algo mal ahi?. Los campos de las fotos son de tipo Varchar. el Foto1 es el nombre de el campo file del formulario y a su vez del campo de la base de datos. Y la variable Foto1 del formulario en vez de _POST he puesto: $Foto1 = $_FILES['Foto1']['name'];

Cual es mi error? No consigo subir la imagen a la carpeta images y mucho menos copiar la ruta ./images/X.jpg a el campo de la BD.
  #2 (permalink)  
Antiguo 10/02/2009, 16:57
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: Me rindo. Imagen Base de datos para variar T_T.

¿que no te salen errores textuales???

digo, tiene uno muy claro de sintaxis... ¿que esta haciendo el punto y coma ahí???

Código PHP:
 if(move_uploaded_file($_FILES['Foto1']['tmp_name'], $ruta;)) { 
eso esta mal... por favor, lee un manual básico de sintaxis de PHP

demás, donde estas ejecutando la consulta de SQL para insertar la ruta ¿??? INSERT
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #3 (permalink)  
Antiguo 10/02/2009, 16:58
 
Fecha de Ingreso: febrero-2009
Mensajes: 52
Antigüedad: 15 años, 2 meses
Puntos: 0
Respuesta: Me rindo. Imagen Base de datos para variar T_T.

Si te digo la verdad, no lo se. He copiado el codigo de este foro diciendo la gente que les iba bien. Voy a probar.

Código PHP:
//Insertando en la base de datos 
$sql="INSERT INTO inmuebles (Referencia,Tipo,Estado,Localidad,Zona,Dormitorios,Precio,Foto1,Foto2,Foto3,Foto4,Caracteristicas) VALUES ('$Referencia', '$Tipo','$Estado','$Localidad','$Zona','$Dormitorios','$Precio','$Foto1','$Foto2','$Foto3','$Foto4','$Caracteristicas')";
mysql_query($sql,$coneccion); 
mysql_close($coneccion); 
te refieres a esto?

PD: He conseguido subir la foto!!!. Solo me queda una cosa. En el campo de la BD se me graba el nombre de la foto, es decir foto.jpg pero no se me graba ./images/foto.jpg
  #4 (permalink)  
Antiguo 10/02/2009, 17:06
machoman112233
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: Me rindo. Imagen Base de datos para variar T_T.

Código php:
Ver original
  1. if (isset($_POST['Registrar']))
  2. {
  3.     if(is_uploaded_file($_FILES['Foto1']['tmp_name']))
  4.     {
  5.         $ruta= "http://www.forosdelweb.com/images/".$_FILES['Foto1']['name'];
  6. //es imagen o ../imagen o etc dependiendo de donde esta el php... si en la misma carpeta donde se guarda la imagen, arriba o por debajo...
  7.         if(move_uploaded_file($_FILES['Foto1']['tmp_name'], $ruta)) // el ; sobra
  8.         {
  9.             echo "<b>Upload exitoso!. Datos:</b><br>";
  10.             echo "Nombre: <i><a href=\"".$_FILES['Foto1']['name']."\">".$_FILES['Foto1']['name']."</a></i><br>";
  11.             echo "Tipo MIME: <i>".$_FILES['Foto1']['type']."</i><br>";
  12.             echo "Peso: <i>".$_FILES['Foto1']['size']." bytes</i><br>";
  13.             echo "<br><hr><br>";
  14.         }
  15.     }
  16. }// te falta un parentesis

En cuanto a la ba se de datos deberias ver si la imagen ya existe y todo eso, para asegurarte que no esta subida ya...
  #5 (permalink)  
Antiguo 10/02/2009, 17:09
 
Fecha de Ingreso: febrero-2009
Mensajes: 52
Antigüedad: 15 años, 2 meses
Puntos: 0
Respuesta: Me rindo. Imagen Base de datos para variar T_T.

Perdon Machoman el parentesis si lo tenia pero se me ha pasado copiarlo. La imagen la sube y si ya existe la reemplaza. Pero me gustaria resolver antes lo de la ruta.
  #6 (permalink)  
Antiguo 10/02/2009, 17:11
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: Me rindo. Imagen Base de datos para variar T_T.

debes usar $ruta en lugar de $Foto1, ya que es la variable que estas usando al mover el archivo con move_upload_file()

Código PHP:
// move_uploaded_file("desde", "hasta"); // $ruta 

suerte!
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #7 (permalink)  
Antiguo 10/02/2009, 17:13
 
Fecha de Ingreso: febrero-2009
Mensajes: 52
Antigüedad: 15 años, 2 meses
Puntos: 0
Respuesta: Me rindo. Imagen Base de datos para variar T_T.

Código PHP:
# se recogen los datos del formulario
$Referencia $_POST['Referencia'];
$Tipo $_POST['Tipo'];
$Estado $_POST['Estado'];
$Localidad $_POST['Localidad'];
$Zona $_POST['Zona'];
$Dormitorios $_POST['Dormitorios'];
$Precio $_POST['Precio'];
$Foto1 $_FILES['Foto1']['name'];
$Foto2 $_FILES['Foto1']['name'];
$Foto3 $_FILES['Foto1']['name'];
$Foto4 $_FILES['Foto1']['name'];
$Caracteristicas $_POST['Caracteristicas'];

//Insertando en la base de datos 
$sql="INSERT INTO inmuebles (Referencia,Tipo,Estado,Localidad,Zona,Dormitorios,Precio,Foto1,Foto2,Foto3,Foto4,Caracteristicas) VALUES ('$Referencia', '$Tipo','$Estado','$Localidad','$Zona','$Dormitorios','$Precio','$Foto1','$Foto2','$Foto3','$Foto4','$Caracteristicas')";
mysql_query($sql,$coneccion); 
mysql_close($coneccion); 
Cambio la variable $Foto1 por $ruta? Insertandola o eligiendola del formulario?.

PD: La carpeta images esta en la ruta del php. Es decir que con ./images/ valdria, o incluso images/ pero que yo sepa vale con ./images/ no?.
  #8 (permalink)  
Antiguo 10/02/2009, 17:23
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: Me rindo. Imagen Base de datos para variar T_T.

si... esta bien ./images

si, debes usar $ruta ya que move_uploaded_file() (textualmente) mueve el archivo subido...

osea... que $_FILES['Foto1']['tmp_name'] (tmp de temporal) es un archivo "temporal", que se borra después...

de modo que $_FILES['Foto1']['name'] es solo el nombre del archivo, no una ruta....

Código PHP:
$ruta"./images/".$_FILES['Foto1']['name']; // Se guardaría dentro de "carpeta" con el nombre original 
entonces... $ruta es la ruta final ./images/<nombre> a donde se copia el archivo temporal...

sencillo de entender, solo usa la ruta final ($ruta) ... al asignarla a $Foto1

Código PHP:
$Foto1 $ruta// $_FILES['Foto1']['name'] 

suerte!
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #9 (permalink)  
Antiguo 10/02/2009, 17:59
 
Fecha de Ingreso: febrero-2009
Mensajes: 52
Antigüedad: 15 años, 2 meses
Puntos: 0
Respuesta: Me rindo. Imagen Base de datos para variar T_T.

Problema resuelto ;). Como siempre nunca decepcionais. Espero que esto sirva a los despistados como yo. Ya que estamos y para no poner otro post, si no es molestia unas dudas:

- Si el nombre de la imagen existe, reemplazarlo por un +1 o algo por el estilo
- Para hacer lo mismo que me acabais de enseñar pero editar (update) y borrar (delete) registros es lo mismo pero cambiando las sentencias?. Que seria mostrar un select por html con las caracteristicas actuales del registro y modificarlo con el formulario?.

Si teneis idea os agradeceria vuestra ayuda. De todas formas seguire buscando por ahi. Tengo que terminar el "panel de control" chapucero para este mes ;).
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 00:15.