Foros del Web » Programando para Internet » PHP »

Guardar en la base de datos el valor de un campo file

Estas en el tema de Guardar en la base de datos el valor de un campo file en el foro de PHP en Foros del Web. Hola Tengo un formulario en php que guarda la información en una base de datos Mysql, pero e incluido un campo de tipo file que ...
  #1 (permalink)  
Antiguo 17/10/2008, 05:43
 
Fecha de Ingreso: marzo-2008
Mensajes: 13
Antigüedad: 16 años, 1 mes
Puntos: 0
Guardar en la base de datos el valor de un campo file

Hola
Tengo un formulario en php que guarda la información en una base de datos Mysql, pero e incluido un campo de tipo file que sube una imagen al servidor pero no guarda el nombre del archivo en la base de datos.
Uso dreamweaver para crear el código, y me ha añadido esta línea

GetSQLValueString($_POST['foto1'], "text"),

foto1 es el nombre del campo en el formulario y en la base de datos. Si el campo es de tipo texto lo pilla sin problemas pero con campos file no.

¿alquien me puede ayudar? Mil gracias
  #2 (permalink)  
Antiguo 17/10/2008, 05:47
Avatar de Ronruby  
Fecha de Ingreso: julio-2008
Ubicación: 18°30'N, 69°59'W
Mensajes: 4.879
Antigüedad: 15 años, 9 meses
Puntos: 416
Respuesta: Guardar en la base de datos el valor de un campo file

Para recoger los campos tipo file se usa:

$_FILES['foto']['name']; //Nombre de la imagen
$_FILES['foto']['tmp_name']; //Nombre de la imagen temporal
$_FILES['foto']['size']; //Tamaño de la imagen en bytes
$_FILES['foto']['type'] //Tipo de archivo
$_FILES['foto']['error'] //En caso de error se muestra un numero.
  #3 (permalink)  
Antiguo 17/10/2008, 05:55
 
Fecha de Ingreso: marzo-2008
Mensajes: 13
Antigüedad: 16 años, 1 mes
Puntos: 0
Respuesta: Guardar en la base de datos el valor de un campo file

Mil gracias pero no acabo de entender. Soy bastante profano programando uso Dreamweaber para escribir el codigo y no se donde tengo que poner eso que me dices.

¿Es sustituir

GetSQLValueString($_POST['foto1'], "text"),

por lo que me pasas?

GetSQLValueString($_FILES['foto1']['name'], "text"),

Al hacer esto sigue haciendome lo mismo, no me guarda la información el la base de datos.
  #4 (permalink)  
Antiguo 17/10/2008, 07:13
 
Fecha de Ingreso: septiembre-2008
Mensajes: 152
Antigüedad: 15 años, 7 meses
Puntos: 1
Respuesta: Guardar en la base de datos el valor de un campo file

QUE HAY YOMIENTO BUENO EL CODIGO QUE TE MUESTRO A CONTINUACION TE RECOMIENDO QUE LO PONGAS HASTA EL INICIO DE TU PAGINA, ME SUPONGO QUE DEBES DE ESTAR OCUPANDO PHP PARA PROGRAMAR TU PAGINA, AQUI TE MUESTRO LA MANERA EN QUE YO LO HAGO Y ME CORRE MUY BIEN, ESPERO SEA DE TU AYUDA

Código PHP:
if($_POST['guardar_producto']) 

    include(
"conexion.php"); 
    
$clave=$_POST['clave_producto']; //LETRAS EN ROJO=NOMBRE DEL CAMPO DE TEXTO 
    
$descripcion=$_POST['descripcion_producto']; 
    
$precio=$_POST['precio_producto']; 
    
$tipo=$_POST['tipo_producto']; 
    
$seccion=$_POST['seccion_producto']; 
    
$disponible=$_POST['producto_disponible_en']; 
     
    
$archivo="fotos/".$_FILES['imagen']['name']; //archivo=al directorio y nombre de la foto 
    
$tipo_archivo=$_FILES['imagen']['type']; //txtension del archivo 
    
$tamano_archivo=$_FILES['imagen']['size']; 
         
    if(
$archivo!='fotos/'
    { 
        if(!((
strpos($tipo_archivo,"gif") || strpos($tipo_archivo,"jpeg")) && ($tamamo_archivo 200000))) 
        { 
            
$error=1
        } 
        else 
        { 
         
            if(
move_uploaded_file($_FILES['imagen']['tmp_name'],$archivo)) //AQUI ES DONDE SE SUBE EL ARCHIVO A LA BD
            

                
//El archivo se cargo de manera correcta 
            

            else 
            { 
                
$error=2
            } 
        } 
    } 
     
    
//Comprobar si existe error 
    
if($error==1
    { 
        echo
"<script> alert(\"El archivo no debe tener un tamaño superior a 200KB y debe tener formato JPEG o GIF\");</script>"
        die(); 
    } 
    elseif(
$error==2
    { 
        echo
"<script> alert(\"No se ha podido guardar la imagen\");</script>"
        die();  
    } 
    
//Si no hay errores de insertan datos en la tabla 
    
else 
    { 
        if(
mysql_query("insert into productos values('$clave','$descripcion','$precio','$archivo','$tipo','$seccion','$disponible')")) 
        {
//$url_relativa="productos.php"; 
        //header("Location:http://".$_SERVER['HTTP_HOST'].dirname($_SERVER['PHP_SELF'])."/".$url_relativa); 
        
echo"<script> alert(\"Los datos se han guardado exitosamente\"); </script>"
        } 
        else 
        { 
        echo
"<script> alert(\"No se pueden guardar los datos, posiblemente ya exista este producto\"); </script>"
        } 
    } 
    
mysql_close($conex); 

La clase "conexion.php" es una clase que debes de crear o tener creada que es la que se encarga de realizar la conexion con la BD
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 11:14.