Foros del Web » Programando para Internet » PHP »

Subir multiples imagenes

Estas en el tema de Subir multiples imagenes en el foro de PHP en Foros del Web. Hola hice un formulario para subir muchas imagenes con el <input type='files' multiple='TRUE' name='fotos[]'> pero no logro poder ordenar el array para obtener el tmp_name ...
  #1 (permalink)  
Antiguo 06/07/2015, 19:50
Avatar de mostaza4  
Fecha de Ingreso: octubre-2008
Mensajes: 74
Antigüedad: 15 años, 6 meses
Puntos: 0
Subir multiples imagenes

Hola hice un formulario para subir muchas imagenes con el <input type='files' multiple='TRUE' name='fotos[]'> pero no logro poder ordenar el array para obtener el tmp_name y el name de cada foto. Como se hace, porque busque en internet y encontre solo pags en ingles que no logre entender.

Gracias
  #2 (permalink)  
Antiguo 06/07/2015, 20:22
Avatar de xfxstudios  
Fecha de Ingreso: junio-2015
Ubicación: Valencia - Venezuela
Mensajes: 2.448
Antigüedad: 8 años, 10 meses
Puntos: 263
Respuesta: Subir multiples imagenes

En el foro ya hay un tema al respecto.
[URL="http://www.forosdelweb.com/f4/input-type-file-multiple-html-5-a-899933/"]Aqui[/URL]
  #3 (permalink)  
Antiguo 07/07/2015, 06:05
Avatar de mostaza4  
Fecha de Ingreso: octubre-2008
Mensajes: 74
Antigüedad: 15 años, 6 meses
Puntos: 0
Respuesta: Subir multiples imagenes

Cita:
Iniciado por xfxstudios Ver Mensaje
En el foro ya hay un tema al respecto.
[URL="http://www.forosdelweb.com/f4/input-type-file-multiple-html-5-a-899933/"]Aqui[/URL]
Si, gracias, de ahi saque el upload multiple, pero como dice ahi va a quedar $_FILES['imagenes']['name'][$a] y yo necesito que quede $_FILES['imagenes'][$a]['name']. Es mas no pregunte ahi porque ese tema esta en el foro html5, me parecio apropiado abrir uno en php.
Ahi dice con un while o 2 foreach y estube probando varias formas que se me ocurrieron y ninguna me funciono.
Como tendria que hacer para ordenarlo en $_FILES['imagenes'][$a]['name'].

Gracias
  #4 (permalink)  
Antiguo 07/07/2015, 09:54
Avatar de xfxstudios  
Fecha de Ingreso: junio-2015
Ubicación: Valencia - Venezuela
Mensajes: 2.448
Antigüedad: 8 años, 10 meses
Puntos: 263
Respuesta: Subir multiples imagenes

Yo use este php que sube las imagenes y guarda los datos en una base:
Código PHP:
Ver original
  1. if(isset($_FILES['files'])){
  2.     $errors= array();
  3.     foreach($_FILES['files']['tmp_name'] as $key => $tmp_name ){
  4.         $file_name = $key.$_FILES['files']['name'][$key];
  5.         $file_size =$_FILES['files']['size'][$key];
  6.         $file_tmp =$_FILES['files']['tmp_name'][$key];
  7.         $file_type=$_FILES['files']['type'][$key]; 
  8.         if($file_size > 2097152){
  9.             $errors[]='El archivo supera los 2 MB';
  10.         }      
  11.         $query="INSERT into subida (`id`,`nombre`,`tamano`,`tipo`) VALUES('$user_id','$file_name','$file_size','$file_type'); ";
  12.         $desired_dir="user_data";
  13.         if(empty($errors)==true){
  14.             if(is_dir($desired_dir)==false){
  15.                 mkdir("$desired_dir", 0700);        // Crea el directorio si no existe
  16.             }
  17.             if(is_dir("$desired_dir/".$file_name)==false){
  18.                 move_uploaded_file($file_tmp,"$desired_dir/".$file_name);
  19.             }else{                                  // renombra el archivo si ya existe alguno con ese nombre
  20.                 $new_dir="$desired_dir/".$file_name.time();
  21.                  rename($file_tmp,$new_dir) ;              
  22.             }
  23.          mysql_query($query);          
  24.         }else{
  25.                 print_r($errors);
  26.         }
  27.     }
  28.     if(empty($error)){
  29.         echo "Subida de Archivos fue un exito";
  30.     }
  31. }
El campo en el formulario se llama files []

Etiquetas: formulario, imagenes, multiples
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 05:49.