Ver Mensaje Individual
  #1 (permalink)  
Antiguo 18/01/2006, 09:29
Avatar de emanmora1
emanmora1
 
Fecha de Ingreso: enero-2006
Mensajes: 5
Antigüedad: 18 años, 3 meses
Puntos: 0
Eliminación de archivos por medio de PHP

Hola!
¡Hola! Necesito es ayuda para eliminar archivos por medio de PHP y con un cuadro de texto en donde se pueda añadir el nombre del archivo y cuando se le de clic en el boton el archivo(s) se elimine(n) de la carpeta.


Encontré el codigo en la red para subir archivos y lo posteo por si alguien lo llega a necesitar:

Por medio de este articulo aprenderemos la forma de subir un archivo al servidor por medio del navegador. El único requisito para que todo funcione es que la carpeta donde vaya a subir el archivo tenga los permisos adecuados ("777").

El Formulario
Lo primero que debemos armar es el formulario para permitir que el usuario indique que archivo desea subir al servidor, para esto utilizamos la etiqueta HTML <input> con su atributo type establecido a "file", veamos el código HTML...

<form action="<?=$PHP_SELF?>" method="post" enctype="multipart/form-data" name="form1">
<p align="center">Archivo
<input name="archivo" type="file" id="archivo">
</p>
<p align="center"><input name="boton" type="submit" id="boton" value="Enviar"></p>
</form>


Tengamos en cuenta varios detalles importantes: el formulario esta apuntado (action) a el archivo php actual ($PHP_SELF) y el atributo enctype esta establecido a "multipart/form-data", esto es así por que debemos enviar un archivo. Otro detalle importante son los nombre de los campos "archivo" para el input y "boton" para el submit.

El Script
Bueno llego el turno de crear el script que hará el trabajo de subir el archivo, este script php va ubicado al comienzo de la pagina...

<?
if($boton) {
if (is_uploaded_file($HTTP_POST_FILES['archivo']['tmp_name'])) {
copy($HTTP_POST_FILES['archivo']['tmp_name'], $HTTP_POST_FILES['archivo']['name']);
$subio = true;
}

if($subio) {
echo "El archivo subio con exito";
} else {
echo "El archivo no cumple con las reglas establecidas";
}
die();
}
?>


Lo primero que tenemos es un bloque if que detecta si se envió el formulario, para esto preguntamos si la variable $boton esta presente, si esta presente quiere decir que se envió el formulario entonces entramos en el segundo if que comprueba que se haya enviado algún archivo, si se envió el archivo se copia (copy) desde el directorio temporario donde subió al lugar donde queremos alojarlo, en este caso al mismo directorio del script PHP.

Que es el $HTTP_POST_FILES ?
Seguro que observaron que esta variable aparece muy seguido en nuestro script, la misma es una variable del tipo matriz (array) predefinida de PHP que contiene la información del archivo que estamos subiendo, por ejemplo...

$HTTP_POST_FILES['archivo']['tmp_name'] - Guarda la ruta donde esta alojado temporalmente el archivo.
$HTTP_POST_FILES['archivo']['name'] - Guarda el nombre del archivo (ej: "dibujo.gif").
Esos son algunos de los valores que tiene esa variable, mas adelante veremos mas, lo importante es aprender la forma de acceder a esos valores...

$HTTP_POST_FILES['nombre_del_input_file']['clave']

Volvamos al script, si todo salió bien se establece la variable $subio a true para que luego sepamos que mensaje mostrarle al usuario "El archivo subio con éxito" o "El archivo no cumple...".

Avanzando Mas
El ejemplo mostrado anteriormente fue algo básico como para comprender el funcionamiento pero a la hora de implementarlo seguramente nos surgirán problemas como "¿Que pasa si me suben archivos muy grandes?" "¿Que pasa si en ves de una imagen suben otro tipo de archivo?" ...ETC.

Para solucionar esto utilizaremos el $HTTP_POST_FILES que contiene mas información del archivo enviado, veamos...

$HTTP_POST_FILES['archivo']['size'] - Devuelve el tamaño del archivo (ej: 25445)
$HTTP_POST_FILES['archivo']['type'] - Devuelve el tipo de archivo.(ej: image/gif)
Con esta información podemos mediante bloques if ir viendo si el archivo supera los x bytes de tamaño o es de otro formato, veamos el ejemplo de el script avanzado...

<?
if($boton) {
if (is_uploaded_file($HTTP_POST_FILES['archivo']['tmp_name'])) {
if($HTTP_POST_FILES['archivo']['size'] < 85000) {
if($HTTP_POST_FILES['archivo']['type']=="image/gif") {
copy($HTTP_POST_FILES['archivo']['tmp_name'], $HTTP_POST_FILES['archivo']['name']);
$subio = true;
}
}
}

if($subio) {
echo "El archivo subio con exito";
} else {
echo "El archivo no cumple con las reglas establecidas";
}
die();
}
?>