Ver Mensaje Individual
  #1 (permalink)  
Antiguo 12/06/2011, 23:57
Avatar de alette666
alette666
 
Fecha de Ingreso: febrero-2010
Ubicación: En la luna
Mensajes: 277
Antigüedad: 14 años, 10 meses
Puntos: 5
Pregunta upload multiple en php

hola gente yo de nuevo por estos lares.
veran consegui de una pagina un sistema de upload (convencional) con un solo input para subir (un archivo a la vez), pero a este le agregue un codigo que estaba dando vueltas por internet y lo realice multi upload (sube mas de un archivo a la vez). Pero que pasa? que me sube el primer fichero, pero a los demas no lo toca haciendo que quede un "upload convencional"

aca el codigo
****************************
upload.php
Código PHP:
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>PHP upload</title>
<link href="estilo.css" rel="stylesheet" type="text/css" />
<script type="application/javascript" language="javascript">
var upload_number = 4;
function addFileInput() {
    var d = document.createElement("div");
    var file = document.createElement("input");
    file.setAttribute("type", "file");
    file.setAttribute("name", "archivo"+upload_number);
    d.appendChild(file);
    document.getElementById("moreUploads").appendChild(d);
    upload_number++;
}
function setBlock() {
   document.getElementById('moreLink').style.display = 'block';
}
</script>
</head>
<body>
<table width="413" border="2" cellspacing="0" cellpadding="0" bordercolor="#FF0000" align="center">
  <tr>
    <td width="413" height="40" class="titulo">PHP upload - unijimpe </td>
  </tr>
  <tr>
    <td class="text">Por favor seleccione el archivo a subir:</td>
  </tr>
  <tr>
  <form action="subearchivo.php" method="post" enctype="multipart/form-data">
    <td class="text">
    <input type="file" name="archivo" class="casilla" size="35" id="archivo" onChange="setBlock();" />
<div id="moreUploads"></div>
<div id="moreLink" style="display:none;"><a href="javascript:addFileInput();">Agregar mas</a></div>
    
    
      <!--<input name="archivo" type="file" class="casilla" id="archivo" size="35" />-->
      <div align="center"><input name="enviar" type="submit" class="boton" id="enviar" value="Upload File" />
      <input name="action" type="hidden" value="upload" /></div>      </td>
    </form>
  </tr>
  <tr>
    <td class="text" style="color:#990000"><?php echo $status?></td>
  </tr>
  <tr>
    <td height="30" class="subtitulo">Listado de Archivos Subidos </td>
  </tr>
  <tr>
    <td class="infsub">
    <?php 
    
if ($gestor opendir('files')) {
        echo 
"<ul>";
        while (
false !== ($arch readdir($gestor))) {
           if (
$arch != "." && $arch != "..") {
               echo 
"<li><a href=\"files/".$arch."\" class=\"linkli\">".$arch."</a></li>\n";
           }
        }
        
closedir($gestor);
        echo 
"</ul>";
    }
    
?>    </td>
  </tr>
</table>
</body>
</html>
bueno aca es simple no hay que decir mucho, lo que tenemos en pantalla es el formulario de envio del archivo en el javascript es dnd nos permite abrir mas de un input a la vez.

subearchivo.php
Código PHP:
<?php 
$status 
"";
if (
$_POST["action"] == "upload") {
    
// obtenemos los datos del archivo 
    
$tamano $_FILES["archivo"]['size'];
    
$tipo $_FILES["archivo"]['type'];
    
$archivo $_FILES["archivo"]['name'];
    
$prefijo substr(md5(uniqid(rand())),0,6);
    
    if (
$archivo != "") {
        
// guardamos el archivo a la carpeta files
        
$destino =  "files/".$prefijo."_".$archivo;
        if (
copy($_FILES['archivo']['tmp_name'],$destino)) {
            
$status "Archivo subido: <b>".$archivo."</b>";
        } else {
            
$status "Error al subir el archivo";
        }
    } else {
        
$status "Error al subir archivo";
    }
}
?>
y este es el codigo de proceso, pero como dije antes, "me carga el primer input pero los demas no lo toca.

El ejemplo lo tengo andando, para ver como funciona http://radiolive.netau.net/hash/upload.php,

agradeceria a quien me pudiera ayudar en este proyecto
__________________
Y Sócrates dijo...Solo sé que no sé nada.
Entiende la filosofía como una búsqueda colectiva basada en el diálogo.