Foros del Web » Programando para Internet » PHP »

Subir + de 1 archivo

Estas en el tema de Subir + de 1 archivo en el foro de PHP en Foros del Web. Saludos. Estoy subiendo 2 imágenes. Ambos input FILE se llaman userfile[]. Esto me crea un arreglo. La manera de procesarlo es: for ($i=0; $i<2; $i++) ...
  #1 (permalink)  
Antiguo 14/01/2003, 14:28
Avatar de joseisrael  
Fecha de Ingreso: noviembre-2002
Ubicación: Maracay, Edo. Aragua
Mensajes: 221
Antigüedad: 21 años, 5 meses
Puntos: 1
Pregunta Subir + de 1 archivo

Saludos.

Estoy subiendo 2 imágenes.

Ambos input FILE se llaman userfile[]. Esto me crea un arreglo.

La manera de procesarlo es:

for ($i=0; $i<2; $i++) {

if (is_uploaded_file($HTTP_POST_FILES['userfile']['tmp_name'])) {
.....


}
}


Ahora:

Como hago para agregar la variable $i al $HTTP_POST_FILES['userfile']['tmp_name'] ?????????

Gracias
__________________
Aprender Siempre. Lema de Vida

José Molina
  #2 (permalink)  
Antiguo 14/01/2003, 15:08
Avatar de Webstudio
Colaborador
 
Fecha de Ingreso: noviembre-2001
Ubicación: 127.0.0.1
Mensajes: 3.499
Antigüedad: 22 años, 5 meses
Puntos: 69
Código PHP:
echo $HTTP_POST_FILES['userfile'][$i]['tmp_name']; 
__________________
Tutoriales Photoshop | Web-Studio.com.ar
Artículos PHP | ZonaPHP.com
  #3 (permalink)  
Antiguo 15/01/2003, 09:01
Avatar de joseisrael  
Fecha de Ingreso: noviembre-2002
Ubicación: Maracay, Edo. Aragua
Mensajes: 221
Antigüedad: 21 años, 5 meses
Puntos: 1
Exclamación No Funciona

Saludos.

Aquí les coloco el script:

-----------------

for($i=0; $i<2; $i++) {

if (is_uploaded_file($HTTP_POST_FILES['userfile'][$i]['tmp_name'])) {

$split_path = split("/", $HTTP_POST_FILES['userfile'][$i]['name']);
$split_path = end ($split_path);
$extension = split("[/.]", $split_path);

if (end($extension) == "php" || end($extension) == "php3") {

echo "tipo de archivo invalido";

} else {

$RUTA_UPLOADED = SITE_ROOT . PRODUCTOS_IMG_ROOT . "/";

$NOMBRE_FILE = "pro_" . $_POST['CATEGORIA'] . $_POST['SUBCATEGORIA'] . "_" . mysql_insert_id() . "." . end($extension);

move_uploaded_file($HTTP_POST_FILES['userfile'][$i]['tmp_name'], $RUTA_UPLOADED . $NOMBRE_FILE);

$idp = mysql_insert_id();

if ($i = 0) {
$NCAM = "imagen_p";
}else{
$NCAM = "imagen_g";
}

$queryup = "UPDATE " . TBL_PRODUCTOS . " SET " . $NCAM . " = '" . $NOMBRE_FILE . "' WHERE id_producto = '" . $idp . "'";

$db->query($queryup);

}
}

----------------


Todo lo hace bien, menos subir los archivos.

Ahora, resulta que esto:

if (is_uploaded_file($HTTP_POST_FILES['userfile'][$i]['tmp_name'])) {

}

Nunca es verdadero, pasa de largo por aquí y por eso no sube nada, lo que me hace pensar que $HTTP_POST_FILES['userfile'][$i]['tmp_name'] no debe ser lo correcto.....o quizas lo puse eroneamente no se...

Gracias
__________________
Aprender Siempre. Lema de Vida

José Molina

Última edición por joseisrael; 15/01/2003 a las 09:09
  #4 (permalink)  
Antiguo 15/01/2003, 09:24
Avatar de joseisrael  
Fecha de Ingreso: noviembre-2002
Ubicación: Maracay, Edo. Aragua
Mensajes: 221
Antigüedad: 21 años, 5 meses
Puntos: 1
Listo !!!

Saludos.

Ya esta la cosa es:

$HTTP_POST_FILES['userfile']['tmp_name'][$i];

La variable $i que indica la posición del arreglo va al final.

En estos momentos ... ... es cuando me invito a mi mismo a ir a ver el manual (www.php.net), ahí esta explicado el asunto.

Gracias.
__________________
Aprender Siempre. Lema de Vida

José Molina
  #5 (permalink)  
Antiguo 15/01/2003, 09:39
Avatar de joseisrael  
Fecha de Ingreso: noviembre-2002
Ubicación: Maracay, Edo. Aragua
Mensajes: 221
Antigüedad: 21 años, 5 meses
Puntos: 1
Subir + de 1 archivo

¿Cómo hago para subir mas de 1 archivo y Cambiarle al nombre al archivo que estoy subiendo todo de una vez?

--------------------------------
CÓDIGO DEL FORMULARIO QUE TOMA LOS DATOS:


<form ENCTYPE="multipart/form-data" method="post" action="subir.php">

IMAGEN 1: <INPUT NAME="userfile[]" TYPE="file"><br>

IMAGEN 2: <INPUT NAME="userfile[]" TYPE="file"><br>

<input type="submit" name="Submit" value="Submit">

</form>


-------------------------


CÓDIGO DEL ARCHIVO "subir.php":


$N = 2; //Número de archivos a Subir

for($i=0; $i<$N; $i++) {

if (is_uploaded_file($HTTP_POST_FILES['userfile']
['tmp_name'][$i])) {

$split_path = split("/", $HTTP_POST_FILES['userfile']['name'][$i]);
$split_path = end ($split_path);
$extension = split("[/.]", $split_path);

if (end($extension) == "php" || end($extension) == "php3") {

echo "tipo de archivo invalido";

} else {

$RUTA_UPLOADED = "LA_RUTA_DE_TU_CARPETA";

$NOMBRE_FILE = "NUEVO_NOMBRE_DE_TU_ARCHIVO_" . "." . end($extension);

move_uploaded_file($HTTP_POST_FILES['userfile']['tmp_name'][$i
], $RUTA_UPLOADED . $NOMBRE_FILE);

}
}
}


---------------------

Espero le sea de utilidad.

Suerte
__________________
Aprender Siempre. Lema de Vida

José Molina
  #6 (permalink)  
Antiguo 15/01/2003, 10:30
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
joseisrael ..

como veras he juntado estos dos mensajes .. el de las preguntas y las soluciones q te dieron ... junto con la solución final q le diste al problema.

Si lo deseas ponlo en las FAQ's de PHP .. (mira el formato q se usa de Tema: ... Pregunta: .. Respuesta ... Y pon el código usando el boton "PHP" para q el código quede coloreado y mejor legible)

Un saludo,
  #7 (permalink)  
Antiguo 15/01/2003, 11:21
Avatar de joseisrael  
Fecha de Ingreso: noviembre-2002
Ubicación: Maracay, Edo. Aragua
Mensajes: 221
Antigüedad: 21 años, 5 meses
Puntos: 1
Exactamente

Saludos.

Eso fue lo que intente hacer, pero el mensaje termino donde no era...

Ya le había enviado un mensaje a Webstudio para que lo moviera a las FAQ's.

Entrare a las FAQ's a ver bien como los coloco ahí.

Gracias
__________________
Aprender Siempre. Lema de Vida

José Molina
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 01:21.