Ver Mensaje Individual
  #1 (permalink)  
Antiguo 01/11/2011, 11:26
blancorielo
 
Fecha de Ingreso: julio-2006
Mensajes: 57
Antigüedad: 17 años, 9 meses
Puntos: 0
Subir imagen y almacenar ruta en MySQL

Hola

Estoy intentando subir un formulario con una imagen con PHP.
La imagen iría a una carpeta llamada "imagenes" y los datos, junto con el nombre de la imagen iría a MySQL.

No tengo mucha idea de esto y he visto algunos scripts pero no acaban de funcionarme.

El código que tengo es:

Código:
      //Variable para saber si se produce algun error
       $error=0;
    
        // Guarda las caracteristicas de la imagen
        //nombre_archivo=al directorio y al nombre que quieres que se guarde la foto
        $nombre_archivo = "..imagenes/".$_FILES['imagen']['name']; 
        //tipo_archivo= a la extension del archivo en nuestro caso solo aceptamos imagenes (jpg, gif y png)
        $tipo_archivo = $_FILES['imagen']['type'];
        // tamano_archivo= Almacena el tamaño del archivo en bytes
        $tamano_archivo = $_FILES['imagen']['size']; 
        //compruebo si las características del archivo son las que deseo 
        if($nombre_archivo!='../imagenes'){
        if (!((strpos($tipo_archivo, "gif") || strpos($tipo_archivo, "jpg")) && ($tamano_archivo < 2000000))) { 
          //el tamaño o la extension del archivo no son correctas se pone error=1
          $error=1;

                         
        }else{ 
        if (move_uploaded_file($_FILES['imagen']['tmp_name'], $nombre_archivo)){
         // El archivo ha sido cargado con éxito     
           
        
        }else{ 
        //No se ha podido guardar el archivo en el servidor error=2
        $error=2;               
         } 
       }
       }
           // Comprueba si tiene algun error
               if ($error==1){
            echo "<script> alert (\"El archivo no debe tener un tamaño superior a 2 MB y deber ser JPG o GIF\"); </script>";
            echo "<script language=Javascript> location.href=\"index.php\"; </script>";
            die(); }
            elseif ($error==2){
            echo "<script> alert (\"No se ha podido guardar la imagen en el SERVIDOR \"); </script>";
            echo "<script language=Javascript> location.href=\"index.php\"; </script>";
            die(); 
            }
            //si no hay errores se inserta en la TABLA
            else{
			

 
  $insertSQL = sprintf("INSERT INTO libros (libro_id, nombre_libro, descripcion, precio, imagen) VALUES (%s, %s, %s, %s, %s)",
                       GetSQLValueString($_POST['libro_id'], "text"),
                       GetSQLValueString($_POST['nombre_libro'], "text"),
                       GetSQLValueString($_POST['descripcion'], "text"),
                       //GetSQLValueString($_POST['Cantidad'], "int"),
					   GetSQLValueString($_POST['precio'], "double"),
					   GetSQLValueString($nombre_archivo, "text")
					   );

  mysql_select_db($database_conexion_libros, $conexion_libros);
  $Result1 = mysql_query($insertSQL, $conexion_libros) or die(mysql_error());

  $insertGoTo = "ingreso_exitoso.php";
  if (isset($_SERVER['QUERY_STRING'])) {
    $insertGoTo .= (strpos($insertGoTo, '?')) ? "&" : "?";
    $insertGoTo .= $_SERVER['QUERY_STRING'];
  }
  header(sprintf("Location: %s", $insertGoTo));
}