Foros del Web » Programando para Internet » PHP »

Multiple File Upload

Estas en el tema de Multiple File Upload en el foro de PHP en Foros del Web. Hola amigos, una consulta que me esta volviendo loco: Necesito poder subir varios archivos de fotos a mi web e inmediatamente renombrarlos según una codificación ...
  #1 (permalink)  
Antiguo 21/02/2019, 13:06
Avatar de rlc
rlc
 
Fecha de Ingreso: enero-2012
Mensajes: 19
Antigüedad: 7 años, 2 meses
Puntos: 0
Multiple File Upload

Hola amigos, una consulta que me esta volviendo loco:
Necesito poder subir varios archivos de fotos a mi web e inmediatamente renombrarlos según una codificación especial que tengo. Puedo subirlos sin problema pero al renombrarlos solo lo hace con el primero! No entiendo que esta mal, a continuación el código:

$p = 120000; //variable que recibo por $_REQUEST
for ($i=0; $i<$countfiles; $i++){
$filename = $_FILES['file-es']['name'][$i];
$filename2 = $p.'_'.$i.'.jpg';
// Upload file
move_uploaded_file($_FILES['file-es']['tmp_name'][$i],'fotos_tmp/'.$filename);
// los ....... se refieren a todo el path en mi servidor
rename("....../fotos_tmp/$filename","/........./fotos_tmp/$filename2");
}

Si no uso la linea "rename" todos los archivos suben perfecto a la carpeta temporal, si uso la linea "rename" solo un archivo queda en la carpeta temporal, el primero, ya que queda renombrado como "120000_0.jpg"
Es como si la linea "rename" no estuviera en el bucle for, pero no es asi!
Les agradezco cualquier ayuda que pudieran darme!
  #2 (permalink)  
Antiguo 22/02/2019, 06:08
Avatar de alvaro_trewhela  
Fecha de Ingreso: octubre-2012
Ubicación: localhost
Mensajes: 960
Antigüedad: 6 años, 5 meses
Puntos: 110
Respuesta: Multiple File Upload

Veo que usas rename, solo para renombrar el archivo, pero no logro entender por qué, porque no simplemente hacerlo en move_upladed_file
Código PHP:
Ver original
  1. move_uploaded_file($_FILES['file-es']['tmp_name'][$i],'fotos_tmp/'.$filename2);
  #3 (permalink)  
Antiguo 22/02/2019, 06:47
Avatar de rlc
rlc
 
Fecha de Ingreso: enero-2012
Mensajes: 19
Antigüedad: 7 años, 2 meses
Puntos: 0
Respuesta: Multiple File Upload

Gracias alvaro_trewhela
Tanto move_uploaded_file como rename producen el mismo resultado.
Solo el primer archivo queda en el servidor, esto es lo que veo en el server luego de subir 4 fotos: 120000_0.jpg , o sea, solo una.
Es como que "$i" no funciona o es ignorado en el bucle y entonces todas las fotos caen con el mismo nombre "120000_0.jpg", y no comprendo porque.

Yo necesito que las fotos suban y queden renombradas con un formato A_B.JPG donde A es un código que recibo por $_REQUEST y B es un número de orden, ejemplo:
120000_1.jpg
120000_2.jpg
120000_3.jpg
etc..
  #4 (permalink)  
Antiguo 23/02/2019, 11:53
Avatar de alvaro_trewhela  
Fecha de Ingreso: octubre-2012
Ubicación: localhost
Mensajes: 960
Antigüedad: 6 años, 5 meses
Puntos: 110
Respuesta: Multiple File Upload

Ni idea, guiate por esto a mi me funcionó perfecto:
Código PHP:
Ver original
  1. <?php
  2. if(isset($_POST["send"]) && isset($_FILES)){
  3.     for($k=0;$k<sizeof($_FILES["files"]["tmp_name"]);$k++){
  4.     $ext = explode(".", $_FILES["files"]["name"][$k]);
  5.     $ext = $ext[sizeof($ext)-1];
  6.     $name = "upload/archivo$k.$ext";
  7.         if(move_uploaded_file($_FILES["files"]["tmp_name"][$k], $name)){
  8.         echo $_FILES["files"]["name"][$k]." subido correctamente <br/>"; continue;
  9.         }
  10.         echo "Hubo un error subiendo ".$_FILES["files"]["name"][$k]."<br/>";
  11.     }
  12.    
  13. }
  14. else{
  15. ?>
  16. <form method="post" action="" enctype="multipart/form-data">
  17. <input type="file" name="files[]" multiple><input type="submit" name="send" value="Subir archivos">
  18. </form>  
  19. <?php  
  20. }
  21. ?>

Saludos
  #5 (permalink)  
Antiguo 25/02/2019, 08:54
Avatar de rlc
rlc
 
Fecha de Ingreso: enero-2012
Mensajes: 19
Antigüedad: 7 años, 2 meses
Puntos: 0
Respuesta: Multiple File Upload

Hola Alvaro,
No me funciona tu código y no encuentro la razón.

No puedo poner todo el código por que es muy grande, ya que utilizo el plugin de Kartik Visweswaran para subir múltiples archivos en forma simultanea, lo cual crea una moderna e intuitiva interface y experiencia similar a Facebook, etc.

Mi código esta basado exactamente en este ejemplo (ventanas negras con código):
http://minubeinformatica.com/articulos/programacion/como-utilizar-el-plugin-fileinput-bootstrap-para-la-subida-masiva-de-archivos

Y todo funciona perfecto, sube todos los archivos que quiera en forma simultanea ya que luego "los veo" en mi servidor, en la carpeta temporal definida. El problema viene al final, cuando simplemente necesito "renombrar" los archivos subidos a un formato especifico que yo necesito.

Se que es muy tedioso tratar de reproducir el error para darme una mano, nunca pensé que el problema pudiera estar en otra sección del código, todo parecía indicar que era algo simple en el subindice del bucle for, ahora ya no se ni por donde buscar
Seguiré mirando ya que debo dejarlo funcionando..
Muchas gracias.
  #6 (permalink)  
Antiguo 27/02/2019, 18:30
Avatar de alvaro_trewhela  
Fecha de Ingreso: octubre-2012
Ubicación: localhost
Mensajes: 960
Antigüedad: 6 años, 5 meses
Puntos: 110
Respuesta: Multiple File Upload

Pero usaste mi codigo literalmente? o adaptaste?

De ser literal es muy extraño



La zona horaria es GMT -6. Ahora son las 01:51.