[Php-avanzado] consulta subir archivos

Maximiliano Lizondo lizondomaximiliano en gmail.com
Mar Nov 5 18:19:54 ART 2013


Ok, gracias Leo. Supuse que era algo así pero no estaba seguro.


El 5 de noviembre de 2013 18:11, Leonardo Tadei - Pegasus Tech Supply <
leonardot en pegasusnet.com.ar> escribió:

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



-- 
*Ing. Maximiliano Andrés Lizondo*

   - *Teléfonos: **0223-493-5488* (particular) - *2236-321708* (móvil)
   - *Perfil profesional en LinkedIn: *
   http://ar.linkedin.com/pub/maximiliano-andr%C3%A9s-lizondo/61/906/344
------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <http://www3.fi.mdp.edu.ar/pipermail/php-avanzado/attachments/20131105/3118c92f/attachment.html>


Más información sobre la lista de distribución Php-avanzado