[Php-avanzado] consulta subir archivos
Maximiliano Lizondo
lizondomaximiliano en gmail.com
Mar Nov 5 17:30:01 ART 2013
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
------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <http://www3.fi.mdp.edu.ar/pipermail/php-avanzado/attachments/20131105/d36e5f93/attachment-0001.html>
Más información sobre la lista de distribución Php-avanzado