Existen innumerables clases PHP que podemos utilizar para subir archivos al servidor. Muchas de estas son algo complejas, por eso hoy vamos a ver una forma muy simple de subir archivos al servidor. Se trata de EasyUp una potente y simple clase PHP para subir archivos al servidor.
EasyUp
EasyUp es la clase que vamos a utilizar para subir archivos desde un formulario web al servidor. Basta sólo con examinar el código para ver la simpleza de esta; incluso si no llegamos a comprender bien como funciona, usarla sigue siendo muy sencillo.
class fileDir { private $fileInfo; private $fileLocation; private $error; private $direct; function __construct($dir){ $this->direct = $_SERVER['DOCUMENT_ROOT'].$dir; if(!is_dir($this->direct)){ die('Supplied directory is not valid: '.$this->direct); } } function upload($theFile){ $this->fileInfo = $theFile; $this->fileLocation = $this->direct . $this->fileInfo['name']; if(!file_exists($this->fileLocation)){ if(move_uploaded_file($this->fileInfo['tmp_name'],$this->fileLocation)){ return 'File was successfully uploaded'; } else { return 'File could not be uploaded'; $this->error = "Error: File could not be uploaded.\n"; $this->error .= 'Here is some more debugging info:'; $this->error .= print_r($_FILES); } } else { return 'File by this name already exists'; }
HTML
El código HTMl que implementa el formulario web que enviará los archivos:
<form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post" enctype="multipart/form-data"> <input name="myFile" type="file"> <br> <input name="mySubmit" value="Upload" type="submit"> </form>
Implementación
if(isset($_POST['mySubmit'])){ include 'easyUp.php'; $up = new $fileDir('/myUploads/'); $up->upload($_FILES['myFile']); }
Este código simplemente verifica que se envió algún archivo, en caso afirmativo, inicializa EasyUp.
Si el archivo está en el serivodr, necesitamos llamar al método upload para subir el archivo.
$up->upload($_FILES['myFile2']);
Para borrar archivos:
include 'easyUp.php'; $up = new $fileDir('/myUploads/'); $up->delete('myPic.jpg');
Esto eliminará myPic.jpg.
Para mostrar información sobre el archivo:
if(isset($_POST['mySubmit'])){ include 'easyUp.php'; $up = new $fileDir('/myUploads/'); $up->upload($_FILES['myFile']); echo $up->location(); // outputs: yourServersAbsolutePath/myUploads/ echo $up->fileName(); // outputs: myPic.jpg if our last uploaded file was named myPic.jpg. }
Conclusión
Como mencioné antes, existen muchos recursos para los que desarrollamos con PHP, pero en este caso la simpleza y elegancia de EasyUP hace de esta un recurso sencillo y muy práctico.
Este post es un traducción e interpretación libre de EasyUp – Simple File Uploads que publicó nickbrowndesign.com.
if(isset($_POST['mySubmit'])){ include 'easyUp.php'; $up = new $fileDir('/myUploads/'); $up->upload($_FILES['myFile']); echo $up->location(); // outputs: yourServersAbsolutePath/myUploads/ echo $up->fileName(); // outputs: myPic.jpg if our last uploaded file was named myPic.jpg. }