<div dir="ltr">Ok, gracias Leo. Supuse que era algo así pero no estaba seguro.</div><div class="gmail_extra"><br><br><div class="gmail_quote">El 5 de noviembre de 2013 18:11, Leonardo Tadei - Pegasus Tech Supply <span dir="ltr"><<a href="mailto:leonardot@pegasusnet.com.ar" target="_blank">leonardot@pegasusnet.com.ar</a>></span> escribió:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Hola Maximiliano,<br>
<br>
        como estás armando un formulario por cada archivo, PHP no tiene "que<br>
saber" sobre cuál es la $_POST['a'] correcta, porque solo se envía un<br>
formulario por cada submit.<br>
<br>
        Habrá tantos formularios como archivos.<br>
<br>
        Par que la página sea HTML válido, los formularios tienen que tener un<br>
ID distinto cada uno... podrías generar como nombre B + variable, y la<br>
variable irla cambiando en cada ciclo.<br>
<br>
El mar, 05-11-2013 a las 18:30 -0200, Maximiliano Lizondo escribió:<br>
<div><div class="h5">> Hola, tengo una duda con respecto a un ejercicio sobre subir archivos<br>
> y listarlos. El enunciado era el siguiente:<br>
><br>
><br>
> "Realice un script que permita subir archivos a un directorio y luego<br>
> los muestre listados en una página con un link para su descarga."<br>
><br>
><br>
> Pego el código para facilitar la explicación de mi duda:<br>
><br>
><br>
> <?php<br>
> $directorio="subidas/";<br>
> if (ISSET($_POST['btn_enviar']))<br>
> {<br>
> $archivo=$_FILES['userfile']['name'];<br>
> if (is_uploaded_file($_FILES['userfile']['tmp_name']))<br>
> {<br>
> $path=$directorio.$archivo;<br>
> //$path=$directorio.$_FILES['userfile']['name'];<br>
> //$archivo=$_FILES['userfile']['name'];<br>
> $msg="El archivo {$archivo} fue cargado satisfactoriamente";<br>
> //print('<br><br>El archivo '.'<b>'.$archivo.'</b>'.' fue cargado<br>
> satisfactoriamente.');<br>
> move_uploaded_file($_FILES['userfile']['tmp_name'],$path);<br>
> }<br>
> else<br>
> {<br>
> $msg="Posible ataque durante la subida de archivos. Nombre de archivo:<br>
> {$archivo}";<br>
> //print('Posible ataque durante la subida de archivos. Nombre de<br>
> archivo: '.$archivo);<br>
> }<br>
> }<br>
> if(isset($_POST['Borrar']))<br>
> {<br>
> unlink($directorio.$_POST['a']);<br>
> $msg = "Archivo borrado: {$_POST['a']}";<br>
> }<br>
> $contenido=scandir($directorio);<br>
> array_shift($contenido);<br>
> array_shift($contenido);<br>
> ?><br>
><br>
><br>
> <!DOCTYPE html><br>
><br>
><br>
> <html><br>
> <head><br>
> <title> GUIA 3 - Ejercicio 1</title><br>
> </head><br>
><br>
> <body><br>
> <div><h1>Ejercicio sobre UPLOAD</h1></div><br>
><br>
> <form enctype="multipart/form-data" action="avanz_3_1.php"<br>
>  method="post"><br>
><br>
> <fieldset><br>
> <input type="hidden" name="MAX_FILE_SIZE" value="100000"/><br>
> Enviar este archivo:<input name="userfile" type="file"/><br>
> <input type="submit" name="btn_enviar" value="Subir archivo"/><br>
> </fieldset><br>
> </form><br>
><br>
> <hr><br>
> <br><br>
> <ul><br>
> <?php<br>
> foreach ($contenido as $nombre_archivo)<br>
> {<br>
> ?><br>
> <li><br>
> Archivo: <a href="<?=$directorio?><?=$nombre_archivo?>"><?=<br>
> $nombre_archivo?></a><br>
> <form id="b" name="b" method="post"><br>
> <input name="a" id="a" type="hidden" value="<?=$nombre_archivo?>" /><br>
> <input type="submit" name="Borrar" value="Borrar" /><br>
> </form><br>
> </li><br>
> <?php<br>
> }<br>
> ?><br>
> </ul><br>
><br>
> </body><br>
> </html><br>
><br>
><br>
> La duda es la siguiente: por cada archivo subido se genera un link y<br>
> un formulario con un botón "Borrar" para borrar dicho archivo y un<br>
> "input" de tipo "hidden" (name="a") que contiene el nombre de dicho<br>
> archivo. Pero noté que todos los formularios e inputs que se generan,<br>
> tienen los mismos nombres para cada archivo subido. El tema es que<br>
> cuando se hace click en algún botón "Borrar", se borra el archivo<br>
> correspondiente a dicho botón. ¿Cómo hace el intérprete PHP para saber<br>
> a qué input "a" me estoy refiriendo, cuando le paso el parámetro la<br>
> variable $_POST['a']? se entiende la duda?<br>
><br>
><br>
> --<br>
> Ing. Maximiliano Andrés Lizondo<br>
</div></div>>       * Teléfonos: 0223-493-5488 (particular) - 2236-321708 (móvil)<br>
>       * Perfil profesional en<br>
>         LinkedIn: <a href="http://ar.linkedin.com/pub/maximiliano-andr%C3%" target="_blank">http://ar.linkedin.com/pub/maximiliano-andr%C3%</a><br>
>         A9s-lizondo/61/906/344<br>
> _______________________________________________<br>
> Lista de correo: Php-avanzado<br>
> Mensajes a la lista: <a href="mailto:Php-avanzado@pato2.fi.mdp.edu.ar">Php-avanzado@pato2.fi.mdp.edu.ar</a><br>
> Administración Web: <a href="http://www3.fi.mdp.edu.ar/cgi-bin/mailman/listinfo/php-avanzado" target="_blank">http://www3.fi.mdp.edu.ar/cgi-bin/mailman/listinfo/php-avanzado</a><br>
> Desubscripción: <a href="http://php-avanzado-request@pato2.fi.mdp.edu.ar?subject=unsubscribe" target="_blank">php-avanzado-request@pato2.fi.mdp.edu.ar?subject=unsubscribe</a><br>
<span class="HOEnZb"><font color="#888888"><br>
--<br>
Leonardo Tadei<br>
<a href="mailto:leonardot@pegasusnet.com.ar">leonardot@pegasusnet.com.ar</a><br>
Web: <a href="http://leonardo.tadei.com.ar" target="_blank">http://leonardo.tadei.com.ar</a><br>
Firma pública: <a href="http://www.pegasusnet.com.ar/LeonardoTadei-public.key" target="_blank">http://www.pegasusnet.com.ar/LeonardoTadei-public.key</a><br>
<br>
_______________________________________________<br>
Lista de correo: Php-avanzado<br>
Mensajes a la lista: <a href="mailto:Php-avanzado@pato2.fi.mdp.edu.ar">Php-avanzado@pato2.fi.mdp.edu.ar</a><br>
Administración Web: <a href="http://www3.fi.mdp.edu.ar/cgi-bin/mailman/listinfo/php-avanzado" target="_blank">http://www3.fi.mdp.edu.ar/cgi-bin/mailman/listinfo/php-avanzado</a><br>
Desubscripción: <a href="http://php-avanzado-request@pato2.fi.mdp.edu.ar?subject=unsubscribe" target="_blank">php-avanzado-request@pato2.fi.mdp.edu.ar?subject=unsubscribe</a><br>
</font></span></blockquote></div><br><br clear="all"><div><br></div>-- <br><div dir="ltr"><div><b><font face="trebuchet ms, sans-serif">Ing. Maximiliano Andrés Lizondo</font></b></div><ul><li style="text-align:left"><font><i>Teléfonos: </i><font face="tahoma, sans-serif"><b>0223-493-5488</b> (particular) - <b>2236-321708</b> (móvil)</font><br>
</font></li><li style="font-style:italic;text-align:left"><font><i>Perfil profesional en <b>LinkedIn</b>: </i><a href="http://ar.linkedin.com/pub/maximiliano-andr%C3%A9s-lizondo/61/906/344" style="font-style:normal;color:rgb(17,85,204)" target="_blank">http://ar.linkedin.com/pub/maximiliano-andr%C3%A9s-lizondo/61/906/344</a></font><br>
</li></ul></div>
</div>