Foros del Web » Programando para Internet » PHP »

PHP OO duda de como cargar una imagen en mi bd

Estas en el tema de duda de como cargar una imagen en mi bd en el foro de PHP en Foros del Web. Saludos, e estado practicando con el código php para poder aprender a manipularlo, en realidad no tengo mucho tiempo practicando así que espero me entiendan ...
  #1 (permalink)  
Antiguo 06/08/2013, 13:34
Avatar de ghiper  
Fecha de Ingreso: julio-2013
Ubicación: Guadalajara Jalisco
Mensajes: 80
Antigüedad: 11 años, 4 meses
Puntos: 0
Pregunta duda de como cargar una imagen en mi bd

Saludos, e estado practicando con el código php para poder aprender a manipularlo, en realidad no tengo mucho tiempo practicando así que espero me entiendan y me puedan ayudar con mi problema.

tengo este código que sirve para cargar datos en una base por medio de un formulario lo que necesito es saber como hago para que me guarde una imagen junto con todos los demás campos, al realizar la consulta me guarda los datos perfectamente pero la imagen solo aparece en la base de datos y no se como guardarla para mandarla a una ruta dentro de mi web o local este es el codigo que tengo:

Código PHP:
 <form name="registrar" accept-charset="iso-8859-1" action=" " method="POST" onsubmit="return formulario(this)" class="cargabd">
    <div><label>Nombre de Producto:</label><input name="producto" type="text" size="50" ></div>
    <div><label>Marca de Producto:</label><input name="marca" type="text" size="50"></div>
       <div><label>Descripci&oacute;n de Producto:</label><textarea name="descripcion" class="textarea" rows="5" cols="39"></textarea></div>
    <div><label>Precio de Producto:</label><input name="precio" type="text" size="50" onkeydown="return decimales(this, event)"></div>
    <div><label>Cantidad de Productos:</label><input name="cantidad" type="text" size="50"></div>
    <div><label></label><input name="imagen" type="file" class="cargar-imagen"></div>
    <div> <input type="submit" name="guardar" value="Registrar Producto"/></div>    
      </form>
    <?php
    
if(isset($_POST['guardar'])){
        
$producto=$_POST['producto'];
        
$marca=$_POST['marca'];
        
$descripcion=$_POST['descripcion'];
        
$precio=$_POST['precio'];
        
$cantidad=$_POST['cantidad'];
        
$imagen=$_POST['imagen'];
$sql mysql_query("INSERT INTO productos (nombre,marca,descripcion,precio,cantidad,imagen)VALUES('$producto','$marca','$descripcion','$precio','$cantidad','$imagen');");


        if (!
$sql) {
echo 
"Fallo en la insercion de registro en la Base de Datos: " mysql_error();
}else{
    
/*echo"Los datos se agregaron correctamente!!";*/
    
mysql_free_result();
        
header("location:cargar_productos.php");
     
    }
    }
?>
agrego que los campos están validados con script y espero me puedan ayudar y de ante mano gracias!!
  #2 (permalink)  
Antiguo 06/08/2013, 13:37
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años, 7 meses
Puntos: 2534
Respuesta: duda de como cargar una imagen en mi bd

En primer lugar te adelanto que así no se suben archivos, lee el siguiente manual:
http://php.net/manual/es/features.file-upload.php

Ya cuando sepas como subir archivos descubrirás dónde está tu problema, no antes.
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #3 (permalink)  
Antiguo 06/08/2013, 14:04
Avatar de ghiper  
Fecha de Ingreso: julio-2013
Ubicación: Guadalajara Jalisco
Mensajes: 80
Antigüedad: 11 años, 4 meses
Puntos: 0
Respuesta: duda de como cargar una imagen en mi bd

ok gracias por tu respuesta, a lo que veo tengo que agregar las variables que tienen que tener la ruta y el tipo junto con el nombre por ejemplo:
Código PHP:
Ver original
  1. <?php
  2. if ($_FILES["imagen"]["error"] > 0){
  3.   echo "ha ocurrido un error";
  4. } else {
  5.   //verificar si el tipo de archivo es un tipo de imagen permitido.
  6.   //y que el tamaño del archivo no exceda los 100kb
  7.   $permitidos = array("image/jpg", "image/jpeg", "image/gif", "image/png");
  8.   $limite_kb = 100;
  9.    if (in_array($_FILES['imagen']['type'], $permitidos) && $_FILES['imagen']['size'] <= $limite_kb * 1024){
  10.     //esta es la ruta donde copiaremos la imagen
  11.     $ruta = "imagenes/" . $_FILES['imagen']['name'];
  12.     //compruebo si este archivo existe para no volverlo a copiar.
  13.       if (!file_exists($ruta)){
  14.       //aqui movemos el archivo desde la ruta temporal a nuestra ruta
  15.      $resultado = @move_uploaded_file($_FILES["imagen"]["tmp_name"], $ruta);
  16.       if ($resultado){
  17.         $nombre = $_FILES['imagen']['name'];
  18.         @mysql_query("INSERT INTO imagenes (imagen) VALUES ('$nombre')") ;
  19.         echo "El archivo ha sido movido exitosamente.";
  20.         exit();
  21.       } else {
  22.       echo "Ocurrio un error al el archivo.";
  23.         exit();
  24.          
  25.        
  26.       }
  27.     } else {
  28.     echo "El archivo " .$_FILES['imagen']['name'];  echo "<p>ya existe</p>";
  29.     }
  30.   } else {
  31.    echo"Archivo no permitido, es tipo de archivo prohibido o excede el tamano de $limite_kb Kilobytes.";
  32.         exit();
  33.   }
  34. }
  35.  
  36. ?>

creo que con eso guardara la imagen en una ruta con valores determinados ahora mi duda es como puedo agregar esto en mi codigo principal para que todo sea en una misma pagina, ¿no se si lo puedo agregar como función?

Etiquetas: bd, formulario, mysql, registro, sql
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:11.