Ver Mensaje Individual
  #1 (permalink)  
Antiguo 14/05/2008, 12:26
jemarquesini
 
Fecha de Ingreso: noviembre-2006
Mensajes: 102
Antigüedad: 17 años, 5 meses
Puntos: 1
Fallo al cargar archivo de manera indirecta

Buenas a todos.

Resulta que tengo un formulario con el que subo imagenes al servidor. Lo que pretendo es lo siguiente: elijo las imagenes, le doy a enviar y, a continuacion, se lanza un programa php que introduce en un array todas las imagenes que se han introducido en el formulario. Y os preguntareis ¿pero para que?. Para luego, en un nuevo programa php, cargarlas una a una lanzando una pagina por cada archivo que imprima el nombre del mismo, de manera que, el que sube las imagenes, verá que primero se carga la primera imagen, cuando termina de cargar esta, pasa a cargar la siguiente imprimiendo por pantalla el nombre de la misma.

Digamos que lo que estoy intentando hacer es que el que sube las imagenes sepa que la carga no se ha quedado colgada ya que actualmente se esta cargando una.

A continuacion pongo el codigo:

index.php
Código HTML:
<html>
<head>
<title>Formulario de carga</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>

<body>
<form action="cargardatos.php" enctype="multipart/form-data" method="post">
	<input type="file" name="file1" /><br>
	<input type="file" name="file2" /><br>
	<input type="file" name="file3" /><br>
	<input type="file" name="file4" /><br>
	<br>
	<input type="submit">	
</form>
</body>
</html> 
cargardatos.php
Código PHP:
<?
session_start
();
$contador 0;
for (
$i=0;$i<4;$i++){
    if (!(
$_FILES['file'.($i+1)]['size']==0)){
        
$archivos[$contador] = $_FILES['file'.($i+1)];
        
$contador++;
    }
}
$_SESSION['archivos'] = $archivos;
header("Location: subirarchivo.php?archivo_actual=0");
?>
Como podeis ver, se llama a subirarchivo.php pasando como parametro archivo_actual=0, y este programa se ira llamando asi mismo hasta finalizar la carga de archivos, tal como se ve en el codigo siguiente:

subirarchivo.php
Código PHP:
<?
session_start
();
extract($_GET);
if (!(
$_SESSION['archivos'][$archivo_actual]['name'] == "")){
    
$carga=move_uploaded_file($_SESSION['archivos'][$archivo_actual]['tmp_name'],"archivo".$archivo_actual.".jpg");
    
header("Location: subirarchivo.php?archivo_actual=".($archivo_actual+1));
}else{
    echo 
"carga completa";    
}
?>
Es un poco cutre lo se, solo estoy probando(aunque si teneis otra idea mejor me la haceis saber) pero el problema que tengo es que no se guardan los archivos en el servidor. Supongo que es debido a que $_SESSION['archivos'] no viene del formulario, por lo que en ese momento no se recogen los archivos del usuario, pero no lo tengo muy claro.

¿¿ Alguna idea ??

Saludossss