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.
}
Comments are closed.