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.
}

Por Diego Cambiaso

Comunicador Social, Desarrollador de Software y UX Designer. Blogger desde el 2006, creador de Pixelco Tech. Viajero y fotógrafo. Entusiasta del diseño, apasionado por la tecnología y el social media. EN-ES-IT