Foros del Web » Programando para Internet » PHP »

Duda con script

Estas en el tema de Duda con script en el foro de PHP en Foros del Web. Buenas, actualmente estoy modificando codigo de un modulo de galeria de phpbb3 para adaptarloa mis necesidades y bueno me he quedado atrancado en un sitio ...
  #1 (permalink)  
Antiguo 11/09/2008, 11:36
 
Fecha de Ingreso: septiembre-2005
Mensajes: 10
Antigüedad: 18 años, 7 meses
Puntos: 0
Duda con script

Buenas, actualmente estoy modificando codigo de un modulo de galeria de phpbb3 para adaptarloa mis necesidades y bueno me he quedado atrancado en un sitio y no se seguir

La cosa es un formulaio que se repite tantas veces como queremos mediante una variable, este formulario nos sirve para subir archivos, de esta manera puedo subir tantos como quiero.

El formulario inicial te dejaba elegir los archivos,un nombre y el mismo luego le cambiaba al nombre el numero final, yo lo he modificado creando nuevos campos y demas para que me genere otro tipo de nombre y me lo guarde en distintas carpetas, todo bien pero el error radica en que cuando subo mas de una imagen la ultima sobreescribe todas las anteriores...

El codigo inicial y modificado inicialmente por mi es este:
Código:
td><select id="subalbum_resource" name="subalbum_resource"><option value="0"<!-- IF not S_SUBALBUM_PARENT_ID --> selected="selected"<!-- ENDIF -->>{L_SELECT_SUB}</option>{S_SUBALBUM_RESOURCE}</select></td>
						<td><select id="select_resource" name="select_resource"><option value="0"<!-- IF not S_ALBUM_PARENT_ID --> selected="selected"<!-- ENDIF -->>{L_SELECT_RES}</option>{S_SELECT_RESOURCE}</select></td>
						<td><select id="comment_resource" name="comment_resource"><option value="0"<!-- IF not S_ALBUM_PARENT_ID --> selected="selected"<!-- ENDIF -->>{L_SELECT_COM}</option>{S_COMMENT_RESOURCE}</select></td>
						<td><input name="autor_recurso" type="text" size="14" maxlength="15" /></td>
                    </tr>
                 	<tr>
						<td>&nbsp;</td>
					</tr>		
					<tr>
						<td><label for="file"></label><strong>{L_FILE}:</label></strong></dt></td>
						<td id="file" colspan="2"><input class="inputbox autowidth" type="file" name="image[]" size="52" /></td>
						<td>&nbsp;</td>
					</tr>
					<tr>
						<td>&nbsp;</td>
					</tr>	
					<tr>
						<td><label for="file"><strong>{L_THUMB_RECURSO}:</strong></label></td>
						<td id="file" colspan="2"><input class="inputbox autowidth" type="file" name="rarzip[]" size="52" /></td>
Me he fijado que image[] crea un array con las imagenes "name="image[]" y pense pues bastara crear un array con los demas campos, en el name de los demas campos le puse los [] pensando se me crearian arrrays.

Bien, el php q recoje la info empieza
Código:
foreach ($_FILES['image']['type'] as $i => $type)
, entonces ahi ya me he perdido.

Que hace realmente este trozo de codigo, voy bien encaminado intentando crear arrays de cada elemento delformulario?

Gracias de antemano
  #2 (permalink)  
Antiguo 11/09/2008, 12:37
 
Fecha de Ingreso: agosto-2008
Mensajes: 42
Antigüedad: 15 años, 7 meses
Puntos: 2
Respuesta: Duda con script

coloca un:
Código PHP:
print_r($_FILES['image']); 
para asegurarte que está utilizando la estructura correcta para acceder al array.

el código

Código PHP:
foreach ($_FILES['image']['type'] as $i => $type
lo que hace es considerar que $_FILES['image']['type'] es una array por si mismo, y que tiene varios elementos del tipo $_FILES['image']['type'][0], $_FILES['image']['type'][1], etc...

lo que hace es asignar el indice de un elemento del array $_FILES['image']['type'] en la variable $i, y el valor de ese elemento en la variable $type.

Así que se acaben los elementos en el array.

NOTA: foreach corre el puntero del array un elemento hacia adelante cada vez, al final no lo resetea al principo. Para resetear el puntero, utiliza reset($_FILES['image']['type'] ).

Saludos
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 21:14.