Autor Tema: [POO - CLASE] Subir archivos al servidor  (Leído 974 veces)

Desconectado WarezD@rK

  • PHPer@ Fijo
  • ***
  • Mensajes: 162
  • Karma: 8
  • Sexo: Masculino
  • Pasaba por aquí...
    • Ver Perfil
    • Ninguno
[POO - CLASE] Subir archivos al servidor
« en: 10 de Febrero de 2010, 02:40:27 am »
Hola chicos.

Estaba aburrido y para pasar el rato he creado una clase para subir archivos y pasársela a un amigo.
Ya no me acordaba de PHPeros, pero me ha venido un flash y he pensado compartirla.

Es muy sencilla, no me ha tomado mucho tiempo, pero con tal de aportar algo.

Su uso es simple:

Código: [Seleccionar]
<?php
$file 
= new fileUpload($_FILES[&#39;file_input&#39;]); // Nombre del campo.
$file->setSizeLimit(2048); // Límite en KiloBytes.
$file->setTypeLimit(array("zip""rar""tar")); // Archivos permitidos.
$file->upload("carpeta/destino"); // Carpeta de destino.
$file->showResult(); // Resultado de la carga.
?>

Y aquí la clase (también la adjunto en ZIP):

Código: [Seleccionar]
<?php
class fileUpload
{
private $upFile;
private $sizeLimit;
private $typeLimit;
private $result;

function __construct($xFile)
{
$this->upFile $xFile;
$this->sizeLimit 2048;
$this->typeLimit = array("zip""rar""tar");
$this->result "Subiendo archivo";
}

public function setSizeLimit($xSizeLimit)
{
$this->sizeLimit $xSizeLimit;
}

public function setTypeLimit($xTypeLimit)
{
$this->typeLimit $xTypeLimit;
}

public function upload($xPath)
{
if(is_uploaded_file($this->upFile[&#39;tmp_name&#39;]))
{
if($this->upFile[&#39;size&#39;] / 1024 <= $this->sizeLimit)
{
$fileType $this->upFile[&#39;type&#39;];
$typeOK false;

for($i 0$i <= count($this->typeLimit) - 1$i++)
{
if(strpos(strtolower($fileType), strtolower($this->typeLimit[$i])))
{
$typeOK true;
break;
}
}

if($typeOK)
{
if(!file_exists($xPath."/".$this->upFile[&#39;name&#39;]))
{
if(is_writable($xPath))
{
if(copy($this->upFile[&#39;tmp_name&#39;], $xPath."/".$this->upFile[&#39;name&#39;]))
{
$this->result "Archivo subido.";
}
else
{
$this->result "Error: Ya existe un archivo con el mismo nombre.";
}
}
else
{
$this->result "Error: La carpeta de destino no tiene permisos.";
}
}
else
{
$this->result "Error: Ya existe un archivo con el mismo nombre.";
}
}
else
{
$this->result "Error: No se permiten este tipo de archivos.";
}
}
else
{
$this->result "Error: El archivo es demasiado grande.";
}
}
else
{
$this->result "Error: El archivo no se puede subir.";
}
}

public function showResult()
{
echo $this->result;
}
}
?>

Ya subiré más objetos que vaya creando, aunque estoy abierto a sugerencias.

Un saludo :)
Trabajando en mi actual proyecto.

Comunidad PHPeros

[POO - CLASE] Subir archivos al servidor
« en: 10 de Febrero de 2010, 02:40:27 am »

Desconectado Warlox

  • Moderadores PHP
  • PHPero Master
  • ****
  • Mensajes: 1.278
  • Karma: 77
  • Sexo: Masculino
  • A veces hay que aprender a correr antes de caminar
    • Ver Perfil
    • Página personal
Re:[POO - CLASE] Subir archivos al servidor
« Respuesta #1 en: 10 de Febrero de 2010, 04:03:01 am »
Muy buena clase, K+.

No entendía mucho de las clases, con esto entiendo un 2% xD.
Saludos.

PD: Un tuto de clases no le vendría mal a nadie xDD (A)
- Moderador de PHP


Desconectado WarezD@rK

  • PHPer@ Fijo
  • ***
  • Mensajes: 162
  • Karma: 8
  • Sexo: Masculino
  • Pasaba por aquí...
    • Ver Perfil
    • Ninguno
Re:[POO - CLASE] Subir archivos al servidor
« Respuesta #2 en: 10 de Febrero de 2010, 13:59:07 pm »
Muy buena clase, K+.

No entendía mucho de las clases, con esto entiendo un 2% xD.
Saludos.

PD: Un tuto de clases no le vendría mal a nadie xDD (A)

Si tengo tiempo ya haré uno, aunque la verdad es que por Internet hay muchos tutoriales sobre clases y bastante buenos.
Trabajando en mi actual proyecto.

Desconectado westwest

  • PHPero Master
  • ******
  • Mensajes: 2.837
  • Karma: 104
  • Sexo: Masculino
    • Ver Perfil
Re:[POO - CLASE] Subir archivos al servidor
« Respuesta #3 en: 10 de Febrero de 2010, 15:06:27 pm »
Está muy bien, pero ya que estas, ¿porque es mejor usar una clase que un código normal y corriente?

Desconectado WarezD@rK

  • PHPer@ Fijo
  • ***
  • Mensajes: 162
  • Karma: 8
  • Sexo: Masculino
  • Pasaba por aquí...
    • Ver Perfil
    • Ninguno
Re:[POO - CLASE] Subir archivos al servidor
« Respuesta #4 en: 10 de Febrero de 2010, 16:15:45 pm »
Está muy bien, pero ya que estas, ¿porque es mejor usar una clase que un código normal y corriente?

Usar clases es mucho más flexible, de una misma clase puedes obtener distintos comportamientos sin necesidad de hacer otra.
Por ejemplo, puedes tener una clase imagenGD con 2 métodos; dibujar() y guardar($ruta) en la misma clase. Si necesitas solo mostrar la imagen, lo harás con dibujar(), si lo que quieres es guardarla, con guardar("ruta") y todo eso en un mismo objeto.

Además, una de las ventajas de la programación orientada a objetos son sus métodos, herencias, etc...
Si tienes un proyecto bastante grande con muchas funciones, es mucho más fácil programar utilizando objetos.
Trabajando en mi actual proyecto.

Desconectado westwest

  • PHPero Master
  • ******
  • Mensajes: 2.837
  • Karma: 104
  • Sexo: Masculino
    • Ver Perfil
Re:[POO - CLASE] Subir archivos al servidor
« Respuesta #5 en: 10 de Febrero de 2010, 18:31:38 pm »
A mí me sigue pareciendo una chorrada las clases :S
Es que como tu dices, estarán orientadas a grandes proyectos, pero he hecho algo más menos mediano y con 4 funciones he tirado bien :/

Desconectado WarezD@rK

  • PHPer@ Fijo
  • ***
  • Mensajes: 162
  • Karma: 8
  • Sexo: Masculino
  • Pasaba por aquí...
    • Ver Perfil
    • Ninguno
Re:[POO - CLASE] Subir archivos al servidor
« Respuesta #6 en: 10 de Febrero de 2010, 19:26:14 pm »
A mí me sigue pareciendo una chorrada las clases :S
Es que como tu dices, estarán orientadas a grandes proyectos, pero he hecho algo más menos mediano y con 4 funciones he tirado bien :/

Lo veo lógico que te parezca una chorrada si solo programas 4 scripts caseros, pero a los programadores que nos movemos por distintas plataformas y desarrollamos proyectos más grandes, nos viene de perlas y más si tenemos que desarrollar clases para terceros, ya que es más cómodo trabajar orientado a objetos.

Pero que te parezca una chorrada no quiere decir que lo sea.
Trabajando en mi actual proyecto.

Desconectado CarlosRdrz

  • Moderador Global
  • PHPero Master
  • *****
  • Mensajes: 2.505
  • Karma: 131
  • Sexo: Masculino
  • A.k.a. TLX
    • Ver Perfil
Re:[POO - CLASE] Subir archivos al servidor
« Respuesta #7 en: 10 de Febrero de 2010, 21:48:54 pm »
A mí me sigue pareciendo una chorrada las clases :S
Es que como tu dices, estarán orientadas a grandes proyectos, pero he hecho algo más menos mediano y con 4 funciones he tirado bien :/

De hecho los programadores de PHP profesionales suelen quejarse de que se les considera como programadores que no programan en POO, y suelen insistir constantemente en que los que programamos en PHP nos metamos en los objetos, por que sino siempre vamos a estar encasillados en esto (y vamos a ser sustituidos por otros lenguajes), y POO abre una ventana muy extensa de posibilidades que en la programación modular esta muy limitada.

Saludos
La dedicación de mi respuesta sera directamente proporcional a la dedicación de tu pregunta.
Hacer códigos que entiendan las máquinas es fácil, lo difícil y realmente útil es hacer códigos que entiendan las personas.
http://twitter.com/CarlosRdrz
http://www.carlosrdrz.es

Desconectado WarezD@rK

  • PHPer@ Fijo
  • ***
  • Mensajes: 162
  • Karma: 8
  • Sexo: Masculino
  • Pasaba por aquí...
    • Ver Perfil
    • Ninguno
Re:[POO - CLASE] Subir archivos al servidor
« Respuesta #8 en: 11 de Febrero de 2010, 01:20:51 am »
Por si os interesa, he creado un mini tutorial introductivo sobre las clases: http://www.phperos.net/foro/index.php/topic,5093.new.html
Trabajando en mi actual proyecto.