[Php-avanzado] consulta subir archivos
Maximiliano Lizondo
lizondomaximiliano en gmail.com
Mar Nov 5 17:35:28 ART 2013
Hay líneas comentadas con "//", aclaro por que me olvidé de sacarlas y no
hay que tenerlas en cuenta.
El 5 de noviembre de 2013 17:30, Maximiliano Lizondo <
lizondomaximiliano en gmail.com> 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
>
>
--
*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/4e033690/attachment.html>
Más información sobre la lista de distribución Php-avanzado