Foros del Web » Programando para Internet » PHP »

[SOLUCIONADO] Orden en subida de archivos.

Estas en el tema de Orden en subida de archivos. en el foro de PHP en Foros del Web. Hola a todos. He creado un formulario donde un usuario puede subir multiples imagenes y ordenarlas a su antojo, (gracias a la funcionalidad de "sortable" ...
  #1 (permalink)  
Antiguo 24/02/2016, 15:43
 
Fecha de Ingreso: mayo-2013
Mensajes: 169
Antigüedad: 10 años, 10 meses
Puntos: 25
Orden en subida de archivos.

Hola a todos.

He creado un formulario donde un usuario puede subir multiples imagenes y ordenarlas a su antojo, (gracias a la funcionalidad de "sortable" de jqueryUI), el codigo seria algo así:
Código HTML:
Ver original
  1. <form action="" method="post" enctype="multipart/form-data">
  2. <div class="add_image"><input type="file" name="image[]"></div>
  3. </form>

Con javasript al pulsar en add_image, añadiria una imagen nueva con su previsualización, y puede añadir las que quiera, y luego ordenarlas arrastrandolas:
Código HTML:
Ver original
  1. <form action="" method="post" enctype="multipart/form-data">    
  2.    
  3.     <div class="wp_image"><!--imagen nueva que se va a subir -->
  4.         <img src="base64image">
  5.         <input type="file" name="image[]">
  6.     </div> 
  7.     <div class="wp_image"><!--imagen nueva que se va a subir -->
  8.         <img src="base64image">
  9.         <input type="file" name="image[]">
  10.     </div>
  11.     <div class="add_image"><input type="file" name="image[]"></div>
  12. </form>
BUeno hasta ahí no tengo problemas, en php me vienen ordenados en la variable "$_FILES", y los subo ordenados al servidor, e inserto en la base de datos en su orden su ruta correspondiente, y luego el usuario los podra ver en su orden.

La cuestión está en que puede haber ya imagenes subidas, y es formulario incialmente puede no estar vacio:
Código HTML:
Ver original
  1. <form action="" method="post" enctype="multipart/form-data">    
  2.     <div class="wp_image"><!--imagen de cargado de la base de datos -->
  3.         <img src="urlimage.com/example.png">
  4.         <input type="text" value="www.url.com/uploads/ejemplo.png" name="image[]">
  5.     </div>
  6.     <div class="wp_image"><!--imagen nueva que se va a subir -->
  7.         <img src="base64image">
  8.         <input type="file" name="image[]">
  9.     </div>
  10.     <div class="wp_image"><!--imagen de cargado de la base de datos -->
  11.         <img src="urlimage.com/example.png">
  12.         <input type="text" value="www.url.com/uploads/ejemplo.png" name="image[]">
  13.     </div>
  14.     <div class="wp_image"><!--imagen nueva que se va a subir -->
  15.         <img src="base64image">
  16.         <input type="file" name="image[]">
  17.     </div>
  18.     <div class="add_image"><input type="file" name="image[]"></div>
  19. </form>
Y como el usuario puede ordenarlos como quiera, cuando quiero obtener las que ya estan subidas, que solo puedo mostrarlo en el fomulario con un input tipo "text", aparecen estas variables en $_POST y las nuevas imagenes en $_FILES, y claro al llegarme por separado no sé en que orden llegan .

No sé me ocurre un algoritmo para conseguir el orden en la mezcla que puede hacer el usuario entre las que ya estan subidas y las que se van a subir ahora.

Espero que se me entienda, ¿alguno me puede dar algo de luz?
  #2 (permalink)  
Antiguo 24/02/2016, 17:40
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: Orden en subida de archivos.

Puedes agregar un índice para indicar el orden original de las cosas, y entonces mezclarlas:
Código HTML:
Ver original
  1. <input name="foo[0]" type="text">
  2. <input name="foo[1]" type="file">
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.

Etiquetas: formulario, orden, subida, variable
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:13.