Foros del Web » Programando para Internet » PHP »

upload multiple en php

Estas en el tema de upload multiple en php en el foro de PHP en Foros del Web. 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 ...
  #1 (permalink)  
Antiguo 12/06/2011, 23:57
Avatar de alette666  
Fecha de Ingreso: febrero-2010
Ubicación: En la luna
Mensajes: 277
Antigüedad: 14 años, 2 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.
  #2 (permalink)  
Antiguo 13/06/2011, 06:47
Avatar de Patriarka  
Fecha de Ingreso: enero-2011
Ubicación: Moreno, Buenos Aires, Argentina
Mensajes: 2.851
Antigüedad: 13 años, 2 meses
Puntos: 288
Respuesta: upload multiple en php

tal cual, en el segundo codigo le estas diciendo que guarde un solo archivo!

en ese codigo hace esto:

var_dump($_FILES);
  #3 (permalink)  
Antiguo 13/06/2011, 17:30
Avatar de alette666  
Fecha de Ingreso: febrero-2010
Ubicación: En la luna
Mensajes: 277
Antigüedad: 14 años, 2 meses
Puntos: 5
Respuesta: upload multiple en php

Cita:
Iniciado por Patriarka Ver Mensaje
tal cual, en el segundo codigo le estas diciendo que guarde un solo archivo!

en ese codigo hace esto:

var_dump($_FILES);
perdón, pero en que linea va ese codigo, será aca??
Código PHP:
if (copy($_FILES['archivo']['tmp_name'],$destino)) { 
por
Código PHP:
if (var_dump($_FILES['archivo']['tmp_name'],$destino)) { 
es asi?? o puse cualquiera :(
__________________
Y Sócrates dijo...Solo sé que no sé nada.
Entiende la filosofía como una búsqueda colectiva basada en el diálogo.
  #4 (permalink)  
Antiguo 13/06/2011, 17:37
marcofbb
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: upload multiple en php

1- tiene problema de seguridad
2- No es multi :P

Mira este post:
http://www.marcofbb.com.ar/multiupload-en-php/
  #5 (permalink)  
Antiguo 13/06/2011, 17:50
Avatar de alette666  
Fecha de Ingreso: febrero-2010
Ubicación: En la luna
Mensajes: 277
Antigüedad: 14 años, 2 meses
Puntos: 5
Respuesta: upload multiple en php

Cita:
Iniciado por marcofbb Ver Mensaje
1- tiene problema de seguridad
2- No es multi :P

Mira este post:
http://www.marcofbb.com.ar/multiupload-en-php/
marcofbb, lo vi a tu codigo, pero lo que tu codigo tiene es que esta forzando al usuario a subir 5 archivos, (si no me equivoco) y si deseo subir mas de 5??? y si quiero subir dos???
__________________
Y Sócrates dijo...Solo sé que no sé nada.
Entiende la filosofía como una búsqueda colectiva basada en el diálogo.
  #6 (permalink)  
Antiguo 13/06/2011, 17:54
marcofbb
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: upload multiple en php

Cita:
Iniciado por alette666 Ver Mensaje
marcofbb, lo vi a tu codigo, pero lo que tu codigo tiene es que esta forzando al usuario a subir 5 archivos, (si no me equivoco) y si deseo subir mas de 5??? y si quiero subir dos???
Esa es la trampa de mi blog, te obliga a buscar por tu cuenta. Te doy una pista con Javascript se logra eso.

Ejemplo:
Código PHP:
Ver original
  1. <?
  2. if($_POST){
  3. $cosa='"text/css"';
  4. $so=-1;
  5. echo('
  6. <h3>Copia y pega esto en Head de la pagina!</h3>
  7. <textarea cols="50" rows="5" onclick="this.select()">
  8. <script language="JavaScript1.1">
  9. var quotes=new Array() ');
  10. foreach($_POST['url'] as $m){
  11. $so=$so+1;
  12. echo("
  13. quotes[".$so."]='<style type=".$cosa.">body{background-image:url(".$m.");}</style>'");
  14. }
  15. echo('
  16. var whichquote=Math.floor(Math.random()*(quotes.length))
  17. document.write(quotes[whichquote])
  18. </script>
  19. </textarea>');
  20. }
  21. ?>
  22. <script type="text/javascript">
  23. <!--
  24. num=0;
  25. function crear(obj) {
  26.   num++;
  27.   fi = document.getElementById('fiel');
  28.   contenedor = document.createElement('div');
  29.   contenedor.id = 'div'+num;
  30.   fi.appendChild(contenedor);
  31.  
  32.   ele = document.createElement('input');
  33.   ele.type = 'text';
  34.   ele.name = 'url[]'+num;
  35.   contenedor.appendChild(ele);
  36.  
  37.   ele = document.createElement('input');
  38.   ele.type = 'button';
  39.   ele.value = 'Borrar';
  40.   ele.name = 'div'+num;
  41.   ele.onclick = function () {borrar(this.name)}
  42.   contenedor.appendChild(ele);
  43. }
  44. function borrar(obj) {
  45.   fi = document.getElementById('fiel');
  46.   fi.removeChild(document.getElementById(obj));
  47. }
  48. -->
  49. </script>
  50.  
  51. <form action="" method="post"> <span id="fiel"></p>
  52. <input onclick="crear(this)" type="button" value="Agregar Imagen!" />
  53. <p></p></span>
  54. <input type="submit" value="Generar Script!" />
  55. </form>


Ahora solo queda fusionar los 2 script
  #7 (permalink)  
Antiguo 13/06/2011, 17:55
Avatar de alette666  
Fecha de Ingreso: febrero-2010
Ubicación: En la luna
Mensajes: 277
Antigüedad: 14 años, 2 meses
Puntos: 5
Respuesta: upload multiple en php

Cita:
Iniciado por marcofbb Ver Mensaje
Esa es la trampa de mi blog, te obliga a buscar por tu cuenta. Te doy una pista con Javascript se logra eso.
Ok, ahora pruebo y te comento
__________________
Y Sócrates dijo...Solo sé que no sé nada.
Entiende la filosofía como una búsqueda colectiva basada en el diálogo.

Etiquetas: múltiple, php+js, upload
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 23:28.