Foros del Web » Programando para Internet » PHP »

Subir varias imagenes a la BD NOTA: NO EN CARPETAS

Estas en el tema de Subir varias imagenes a la BD NOTA: NO EN CARPETAS en el foro de PHP en Foros del Web. He buscado por doquier una solución que me permita cargar mediante un form varias imagenes a la BD he llegado hacer trampas para que reconozca ...
  #1 (permalink)  
Antiguo 28/06/2011, 20:56
Avatar de dvbeaumont  
Fecha de Ingreso: marzo-2011
Ubicación: Caracas
Mensajes: 145
Antigüedad: 13 años, 7 meses
Puntos: 1
Pregunta Subir varias imagenes a la BD NOTA: NO EN CARPETAS

He buscado por doquier una solución que me permita cargar mediante un form varias imagenes a la BD he llegado hacer trampas para que reconozca el último ID y así ir subiendo d una en una pero no me es útil!!!!

Este es mi código

Código HTML:
Ver original
  1. <input  id="archivo" name="archivo" type="file" />

Código PHP:
<?php
//ESTA FUNCION LA USAREMOS PARA OBTENER EL TAMAÑO DE NUESTRO ARCHIVO
function filesize_format($bytes$format ''$force ''){
    
$bytes=(float)$bytes;
    if (
$bytes <1024){
        
$numero=number_format($bytes0'.'',');
        return array(
$numero,"B");
    }
    if (
$bytes <1048576){
        
$numero=number_format($bytes/10242'.'',');
        return array(
$numero,"KBs");
    }
    if (
$bytes>= 1048576){
        
$numero=number_format($bytes/10485762'.'',');
        return array(
$numero,"MB");
    }
}
//VERIFICAMOS QUE SE SELECCIONO ALGUN ARCHIVO
if(sizeof($_FILES)==0){
    echo 
"No se puede subir el archivo";
    exit();
}
// EN ESTA VARIABLE ALMACENAMOS EL NOMBRE TEMPORAL QU SE LE ASIGNO ESTE NOMBRE ES GENERADO POR EL SERVIDOR
// ASI QUE SI NUESTRO ARCHIVO SE LLAMA foto.jpg el tmp_name no sera foto.jpg sino un nombre como SI12349712983.tmp por decir un ejemplo
$archivo $_FILES["archivo"]["tmp_name"];

//Definimos un array para almacenar el tamaño del archivo
$fo_tamanio=array();
//OBTENEMOS EL TAMAÑO DEL ARCHIVO
$fo_tamanio $_FILES["archivo"]["size"];
//OBTENEMOS EL TIPO MIME DEL ARCHIVO
$fo_tipo $_FILES["archivo"]["type"];
//OBTENEMOS EL NOMBRE REAL DEL ARCHIVO AQUI SI SERIA foto.jpg
$fo_nombre_archivo $_FILES["archivo"]["name"];
//PARA HACERNOS LA VIDA MAS FACIL EXTRAEMOS LOS DATOS DEL REQUEST
extract($_REQUEST);
//VERIFICAMOS DE NUEVO QUE SE SELECCIONO ALGUN ARCHIVO
if ( $archivo != "none" ){
    
//ABRIMOS EL ARCHIVO EN MODO SOLO LECTURA
    // VERIFICAMOS EL TAÑANO DEL ARCHIVO
    
$fp fopen($archivo"rb");
    
//LEEMOS EL CONTENIDO DEL ARCHIVO
    
$fo_contenido fread($fp$fo_tamanio);
    
//CON LA FUNCION addslashes AGREGAMOS UN \ A CADA COMILLA SIMPLE ' PORQUE DE OTRA MANERA
    //NOS MARCARIA ERROR A LA HORA DE REALIZAR EL INSERT EN NUESTRA TABLA
    
$fo_contenido addslashes($fo_contenido);
    
//CERRAMOS EL ARCHIVO
    
fclose($fp);
    
// VERIFICAMOS EL TAÑANO DEL ARCHIVO
    
if ($fo_tamanio <1048576){
        
//HACEMOS LA CONVERSION PARA PODER GUARDAR SI EL TAMAÑO ESTA EN b ó MB
        
$fo_tamanio=filesize_format($fo_tamanio);
    }
    
    
//CREAMOS NUESTRO INSERT
    
$qry "INSERT INTO t_fotos ( fo_nombre_archivo, fo_contenido, fo_tamanio,fo_tamanio_unidad, fo_tipo, id_modelo  ) VALUES
    ('$fo_nombre_archivo', '$fo_contenido','{$fo_tamanio[0]}','{$fo_tamanio[1]}', '$fo_tipo', '"
.$_POST["tipo"]."')";
    
    
//NOS CONECAMOS A LA BASE DE DATOS
    //REMPLAZEN SUS VALOS POR LOS MIOS
mysql_connect("","","") or die("No se pudo conectar a la base de datos");
    
    
//SELECCIONAMOS LA BASE DE DATOS CON LA CUAL VAMOS A TRABAJAR CAMBIEN EL VALOR POR LA SUYA
mysql_select_db("");
    
    
//EJECUTAMOS LA CONSULTA
    
mysql_query($qry) or die("Query: $qry <br />Error: ".mysql_error());

    
    
//CERRAMOS LA CONEXION
    
mysql_close();
    
//NOTIFICAMOS AL USUARIO QUE EL ARCHVO SE HA ENVIADO O REDIRIGIMOS A OTRO LADO ETC.
    
echo "    <script language=javascript>
    alert('Archivo cargado satisfactoriamente')
    </script>"
;
    include_once (
"cargar-imagenes.php");
}else{
    echo 
"    <script language=javascript>
    alert('No fue posible cargar el archivo, intente de nuevo')
    </script>"
;
    include_once (
"cargar-imagenes.php");
}
?>
El me permite la carga de una por una exclusivamente.

Consegui este nuevo recurso

Código HTML:
Ver original
  1. <input  id="archivo[]" name="archivo[]" type="file" multiple="multiple"/>

Y logré ver que hace algun tipo de carga mediante Arrays o no se que! pero si logra tomar varias imagenes solo que no las reconoce luego en la base de datos porque probablemente no se tomaron bien los datos de todos.

Mi pregunta:

¿Cómo logro hacer que suban varias imagenes en la base de datos de una sola vez?

MUCHAS GRACIAS
  #2 (permalink)  
Antiguo 29/06/2011, 00:14
Avatar de repara2  
Fecha de Ingreso: septiembre-2010
Ubicación: München
Mensajes: 2.445
Antigüedad: 14 años, 2 meses
Puntos: 331
Respuesta: Subir varias imagenes a la BD NOTA: NO EN CARPETAS

Utiliza el plugin de JQuery especialmente desarrollado para esto, busca en este foro, hace un par de dias se han publicado varios post.
Salu2!
__________________
Fere libenter homines, id quod volunt, credunt.

Etiquetas: bd, carpetas, imagenes
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 14:10.